在Activity中调用AlertDialog

只能在Activity中调用AlertDialog,所以要想在Receiver中使用AlerDialog,可以在Receiver中用starActivity()启动有AlertDialogActivity

1
2
3
4
5
6
@Override
public void onReceive(final Context context, Intent intent) {
Intent i=new Intent(context,AlertDialogActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);;
context.startActivity(i);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class AlertDialogActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

AlertDialog.Builder dialogBuilder=new AlertDialog.Builder(this);
dialogBuilder.setTitle("Warning");

dialogBuilder.setMessage("you are force to be offline");
dialogBuilder.setCancelable(false);
dialogBuilder.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCollector.finishAll();
Intent intent = new Intent(AlertDialogActivity.this,LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);//重新启动LoginActivity

}
});
AlertDialog alertDialog=dialogBuilder.create();

alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
}