zoukankan      html  css  js  c++  java
  • Android 在广播接收器中弹出对话框

     特别需要注意的几点如下:

    1. 需要设置AlertDialog的类型

          WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

    2. 需要声明Window弹框的权限

    <user-permission android:name="android.premission.SYSTEM_ALERT_WINDOW" />

      3. 在点击AlertDialog的按钮时,如果利用Intent进行页面跳转,需要给Intent加入FLAG_ACTIVITY_NEW_TASK的标志

    接收器中 关键代码如下:

     1   public class ForceOfflineReceiver extends BroadcastReceiver{
     2     @Override
     3     public void onReceive(final Context context, Intent intent) {
     4 
     5         AlertDialog.Builder dialogBuilder =  new AlertDialog.Builder(context);
     6         dialogBuilder.setTitle("下线通知");
     7         dialogBuilder.setMessage("你的账户在其他地方登录 Over");
     8         dialogBuilder.setCancelable(false);
     9         dialogBuilder.setPositiveButton("重新登录",
    10                 new DialogInterface.OnClickListener() {
    11                     @Override
    12                     public void onClick(DialogInterface dialog, int which) {
    13                         ActivityCollector.finishAll();//摧毁所有活动
    14                         Intent intent1 = new Intent(context, LoginActivity.class);
    15                         //在广播接受者中启动活动需要添加FLAG_ACTIVITY_NEW_TASK标志
    16                         intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    17                         context.startActivity(intent1);
    18                     }
    19                 });
    20         AlertDialog alertDialog = dialogBuilder.create();
    21         alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    22         alertDialog.show();
    23     }
    24 }
  • 相关阅读:
    ubuntu: no module named _sqlite
    mysql慢查询分析工具 pt-query-digest
    vue中的时间修饰符stop,self
    面试题 —— Ajax的基本原理总结
    es6笔记 day6-Symbol & generator
    类(class)和继承
    es6笔记 day4---模块化
    es6笔记 day3---Promise
    es6笔记 day3---对象简介语法以及对象新增
    es6笔记 day3---数组新增东西
  • 原文地址:https://www.cnblogs.com/jesonjason/p/5397220.html
Copyright © 2011-2022 走看看