最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android模擬強(qiáng)制下線通知功能實(shí)例代碼

 更新時間:2017年03月06日 09:20:02   作者:zhu6201976  
這篇文章主要介紹了Android模擬強(qiáng)制下線通知功能實(shí)例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

這里寫圖片描述
這里寫圖片描述

package com.itheima74.broadcastbestpractice;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v4.content.LocalBroadcastManager;
import android.view.View;
/**
 * 模擬強(qiáng)制下線通知
 * 1.登錄成功后10秒發(fā)送一條本地自定義無序廣播
 * 2.接收到廣播后彈出對話框(不可取消)
 * 3.點(diǎn)擊對話框確定按鈕重新返回登陸界面
 */
public class MainActivity extends BaseActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 啟動一個子線程,10秒發(fā)送一條本地?zé)o序廣播
    new Thread(new Runnable() {
      @Override
      public void run() {
        SystemClock.sleep(1000 * 10);
        LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getApplicationContext());
        localBroadcastManager.sendBroadcast(new Intent("com.itheima74.broadcastbestpractice.FORCE_OFFLINE"));
      }
    }).start();
  }
  // 點(diǎn)擊按鈕,啟動Main2Activity
  public void click(View view) {
    startActivity(new Intent(this, Main2Activity.class));
  }
}
package com.itheima74.broadcastbestpractice;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
/**
 * Created by My on 2017/3/6.
 */
public class LoginActivity extends AppCompatActivity {
  private EditText et_username;
  private EditText et_password;
  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    et_username = (EditText) findViewById(R.id.et_username);
    et_password = (EditText) findViewById(R.id.et_password);
  }
  // 點(diǎn)擊按鈕,進(jìn)行登錄
  public void login(View view) {
    String username = et_username.getText().toString().trim();
    String password = et_password.getText().toString().trim();
    if ("admin".equals(username) && "123456".equals(password)) {
      Toast.makeText(this, "login success", Toast.LENGTH_SHORT).show();
      startActivity(new Intent(this, MainActivity.class));
    } else {
      Toast.makeText(this, "login fail", Toast.LENGTH_SHORT).show();
    }
  }
}
package com.itheima74.broadcastbestpractice;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import java.util.ArrayList;
/**
 * BaseActivity
 * 1.記錄所有新創(chuàng)建的Activity
 * 2.隨時銷毀所有Activity
 * 3.所有子類獲取焦點(diǎn)注冊廣播接收者,失去焦點(diǎn)取消注冊
 * 4.收到強(qiáng)制下線廣播,彈出對話框,結(jié)束所有Activity,重新啟動LoginActivity
 * Created by My on 2017/3/6.
 */
public class BaseActivity extends AppCompatActivity {
  protected static ArrayList<BaseActivity> activityList = new ArrayList<>();
  private LocalBroadcastManager localBroadcastManager;
  private OffLineReceiver offLineReceiver;
  private IntentFilter intentFilter;
  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    activityList.add(this);
    Log.d("china", getClass().getSimpleName() + " onCreate activityList.size():" + activityList.size());
    localBroadcastManager = LocalBroadcastManager.getInstance(this);
    offLineReceiver = new OffLineReceiver();
    intentFilter = new IntentFilter("com.itheima74.broadcastbestpractice.FORCE_OFFLINE");
  }
  @Override
  protected void onDestroy() {
    super.onDestroy();
    activityList.remove(this);
    Log.d("china", getClass().getSimpleName() + " onDestroy activityList.size():" + activityList.size());
  }
  // 獲取焦點(diǎn),注冊廣播接收者
  @Override
  protected void onResume() {
    super.onResume();
    localBroadcastManager.registerReceiver(offLineReceiver, intentFilter);
  }
  // 失去焦點(diǎn),取消注冊廣播接收者
  @Override
  protected void onPause() {
    super.onPause();
    localBroadcastManager.unregisterReceiver(offLineReceiver);
  }
  protected class OffLineReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, Intent intent) {
      // 彈出對話框
      AlertDialog.Builder builder = new AlertDialog.Builder(BaseActivity.this);
      builder.setTitle("Warning");
      builder.setMessage("You are force to be offline,Please try to login again.");
      builder.setCancelable(false);// 不允許back鍵取消
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          BaseActivity.finishAll();
          // 重新啟動LoginActivity,廣播接收者中需要添加任務(wù)棧
          Intent intent = new Intent(context, LoginActivity.class);
          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          context.startActivity(intent);
        }
      });
      builder.show();
    }
  }
  public static void finishAll() {
    for (BaseActivity baseActivity : activityList) {
      if (!baseActivity.isFinishing()) {
        baseActivity.finish();
      }
    }
  }
}

以上所述是小編給大家介紹的Android模擬強(qiáng)制下線通知功能實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android View的事件分發(fā)機(jī)制

    Android View的事件分發(fā)機(jī)制

    本文主要介紹了Android View的事件分發(fā)機(jī)制。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Android圖片加載的緩存類

    Android圖片加載的緩存類

    這篇文章主要為大家詳細(xì)介紹了Android圖片加載的緩存類的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Android Studio多渠道打包的配置方法

    Android Studio多渠道打包的配置方法

    今天小編就為大家分享一篇關(guān)于Android Studio多渠道打包的配置方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Android實(shí)現(xiàn)圖片文字識別

    Android實(shí)現(xiàn)圖片文字識別

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片文字識別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • android 獲取手機(jī)中的所有圖片或某一目錄下的圖片方法

    android 獲取手機(jī)中的所有圖片或某一目錄下的圖片方法

    下面小編就為大家分享一篇android 獲取手機(jī)中的所有圖片或某一目錄下的圖片方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Android使用代碼動態(tài)生成界面

    Android使用代碼動態(tài)生成界面

    這篇文章主要為大家詳細(xì)介紹了Android使用代碼動態(tài)生成界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Android Studio 透明狀態(tài)欄的實(shí)現(xiàn)示例

    Android Studio 透明狀態(tài)欄的實(shí)現(xiàn)示例

    這篇文章主要介紹了Android Studio 透明狀態(tài)欄的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Android自定義控件之基本原理(一)

    Android自定義控件之基本原理(一)

    這篇文章主要介紹了Android自定義控件之基本原理(一)的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • Android開發(fā)之Socket通信傳輸簡單示例

    Android開發(fā)之Socket通信傳輸簡單示例

    這篇文章主要介紹了Android開發(fā)之Socket通信傳輸實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android socket傳輸?shù)脑?、?shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-08-08
  • Android 解決WebView無法上傳文件的問題

    Android 解決WebView無法上傳文件的問題

    這篇文章主要介紹了Android 解決WebView無法上傳文件的問題的相關(guān)資料,需要的朋友可以參考下
    2017-07-07

最新評論

溆浦县| 河北省| 瑞丽市| 南郑县| 宣威市| 曲麻莱县| 如皋市| 巴东县| 黄浦区| 宜兰县| 永善县| 石林| 永川市| 七台河市| 黄大仙区| 株洲县| 乌兰县| 武义县| 阿克苏市| 高密市| 郁南县| 忻州市| 佳木斯市| 大同市| 新安县| 光山县| 炎陵县| 五指山市| 康马县| 嫩江县| 济阳县| 会昌县| 海门市| 德安县| 静海县| 剑川县| 洛扎县| 开阳县| 邹城市| 湖州市| 临漳县|