问题描述
在广播接收器(BroadcastReceiver)的onReceive(Context context, Intent intent)方法中弹出一个AlterDialog
方案一
感谢懿亮羽嘉提供的方案:
Broadcast的onReceive方法中弹出AlertDialog
美中不足之处:
- 一、4.x、5.x、6.x中android.app.AlertDialog的显示效果都不一样
- 二、7.0及以上无法运行
方案二
public class TestActivity extends Activity {
public static final String ACTION = "cn.com.servyou.secondlinecode.MY_BROADCAST";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter(ACTION);
registerReceiver(receiver, filter);
}
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
new AlertDialog.Builder(TestActivity.this)
.setTitle("dialog")
.setMessage("received in MyBroadcastReceiver!")
.setPositiveButton("确定", null)
.create()
.show();
}
};
}
美中不足:
- 动态注册广播接收器(BroadcastReceiver),需要确保接收器已注册
- 弹窗只能显示在当前app窗口(无法全局)