解决方案 »

  1.   

    receiver里是可以弹dialog的哦,但是需要是系统级别的。在你调用show()方法前写下面这句:
    alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    并在manifest里加入这个权限:
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>
      

  2.   


    那如果我想跳去打开WiFi的界面应该怎么做?
      

  3.   

    我想你是没在manifest里加application的定义吧,加了就个直接用getapplicationcontext来启动intent了
      

  4.   


    那如果我想跳去打开WiFi的界面应该怎么做?该怎么跳就怎么跳啊
    public void onReceive(final Context context, Intent intent) {
    String action = intent.getAction();
    if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
    AlertDialog.Builder builder = new Builder(context);
    builder.setMessage("确认退出吗?");
    builder.setTitle("提示");
    builder.setPositiveButton("跳转", new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int arg1) {
    Intent intent = new Intent(context, MyActivity.class);
    context.startActivity(intent);
    }
    });
    builder.create().getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    builder.create().show();
    }
    }
      

  5.   


    那如果我想跳去打开WiFi的界面应该怎么做?该怎么跳就怎么跳啊
    public void onReceive(final Context context, Intent intent) {
    String action = intent.getAction();
    if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
    AlertDialog.Builder builder = new Builder(context);
    builder.setMessage("确认退出吗?");
    builder.setTitle("提示");
    builder.setPositiveButton("跳转", new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int arg1) {
    Intent intent = new Intent(context, MyActivity.class);
    context.startActivity(intent);
    }
    });
    builder.create().getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    builder.create().show();
    }
    }
    还要加一个intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
      

  6.   

    BroadcastReceiver的生命周期很短,onReceiver方法一旦执行完毕就结束掉了,所在的进程可能也会回收掉。因此,可能在startActivity的过程中onReceiver提供的Context对象就已经不在了。为了确保Context对象一直保持下去,可以使用WakefulBroadcastReceiver持有一个唤醒锁。