标签:android应用 broadcastreceiver
dialog的代码是一个登陆状态异常后弹出,让强制重新登录的弹窗:
AlertDialog.Builder builder = new AlertDialog.Builder(
getActivity(),
android.R.style.Theme_Holo_Light_Panel);
builder.setMessage("登录异常,请点退出重新登录");
builder.setPositiveButton("退出",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
Intent intent = new Intent(getActivity(),LoginActivity.class);
startActivity(intent);
}
});
builder.setCancelable(false);//设置不可点击back关闭dialog
builder.show();然后还要写不让点击back的代码:
//重写back键当Dialog设置为builder.setCancelable(false);时back不执行
public boolean dispatchKeyEvent(android.view.KeyEvent event) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_BACK: {
return false;
}
}
return true;
};以上就是dialog不可点击back退出的代码
在写项目的时候遇到了activity启动多个,然后在后边的activity中需要一次性退出的问题。网上有说用
@Override
protected void onResume() {
super.onResume();
IntentFilter inFilter=new IntentFilter();
inFilter.addAction("finish");//接收的广播名称
registerReceiver(bReceiver, inFilter);动态广播内部类: //退出广播
private BroadcastReceiver bReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};//我是写在了需要退出的这个activity的back按钮这里
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (BaseConfig.quicklogin == 1) {
Intent intent=new Intent();
intent.setAction("finish");
sendBroadcast(intent);
}
return super.onKeyDown(keyCode, event);
}这样在这个activity中。点击back的时候就直接退出了这个应用,而不是一层层返回。弹出dialog后不可点击back返回,用广播退出所有activity
标签:android应用 broadcastreceiver
原文地址:http://blog.csdn.net/sinat_23134455/article/details/45822377