弹出dialog后不可点击back返回,用广播退出所有activity

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中需要一次性退出的问题。网上有说用

System.exit(0); 可以直接退出(没有去试验),也说用建立个活动管理器,将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:

//我是写在了需要退出的这个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的时候就直接退出了这个应用,而不是一层层返回。

时间: 2024-08-03 14:33:06

弹出dialog后不可点击back返回,用广播退出所有activity的相关文章

Android中弹出dialog后无法捕捉back键

一.需求 在Android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应. 二.解决方案 原因:弹出dialog后,activity失去焦点,dialog获得当前焦点. 解决办法:在dialog中可以通过调用setOnKeyListener()方法来为dialog增加按键事件的监听. private void createDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); bui

关于一条定制长按Power键弹出Dialog的需求

如题,需要定制长按Power键弹出的Dialog,UI上的大致效果是:全屏,中间下拉按钮“Swipe Down To Power Off”下拉关机,底部左右两侧“Reboot”,“Cancel”按钮,分别是重启,取消操作.并要求弹出Dialog的同时,背景渐变模糊,操作控件有相应动画效果,执行相应操作有同步动画,退出界面背景渐变至透明消失.设计效果酱紫: 具体控件动画要求就不再详述.主要两件事:1.关机流程,更准确的说应该是对长按Power键的处理:2.定制Dialog. 1.长按Power键,

Android点击列表后弹出输入框,所点击项自动滚动到输入框上方(类似微信的评论)

Android点击列表后弹出输入框,所点击项自动滚动到输入框上方 使用微信的朋友圈会发现,点击某一条评论后输入框会弹出来,然后所点击的那一项会自动地滚动到输入框上方的位置,这样如果开始所点击的评论在屏幕很下方的话,就不会被输入框遮住,虽然微信这一点在我的MX2频繁点几次后滚动的位置就完全错误了,但据说在有些机型上效果还不错,还有其他地方可能会有类似的需求,比如登录时软键盘可能会把登录按钮遮住. 要实现这个功能需要注意的地方主要有两点: 什么时候进行滚动操作,以及有可能还需要在输入框消失时回滚回去

Android 继承DialogFragment弹出dialog对话框一

相信现在Android软件开发员,都经常用到这种方式弹出对话框的.Android继承DialogFragment弹出dialog对话框,这样弹出有很多可以灵活处理地方,想什么启动,什么时候数据接口返回都可以,有自已layout布局,生命周期.下面看看我写demo. 本文代码下载:请点击这里 转载请注明出处: http://blog.csdn.net/qq_16064871 一.MainActivity package com.example.fragmentdialogdemo; import

Android 继承DialogFragment弹出dialog对话框二

之前写过一篇关于Android 继承DialogFragment弹出dialog对话框一,这次是在上次的基础上修改了一些东西,就是怎样在DialogFragment中获取getDialog()是获取当前对话框句柄.就可以进行布局可变的灵活操作.就像getactivity();一样使用.下面看代码. 本文demo下载地址:点击 MainActivity package com.example.fragmentdialogdemo; import com.example.fragmentdialog

android开发(31) 动画演示 - 从页面底部向上弹出dialog,消失时逐渐向下

我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.     实现方式: 在activity中写代码如下 public class MainActivity extends Activity { Button button1; @Override protected void onCreate(Bundle savedInstanceState) { su

从页面底部向上弹出dialog,消失时逐渐向下(转)

我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.     实现方式: 在activity中写代码如下 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 public class MainActivity extends Activity {     Butto

页面table的每行都有一个<input type='button' />,如何实现点击按钮在按钮下方弹出一个div,点击空白消失

\ <input id="test" type="button" />/*按钮*/ <div id="tanchu"></div> <script language="javascript"> $(document).ready(function(e) { $("#test").click(function(e) { $("#tanchu"

Android 底部弹出Dialog(横向满屏)

项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog). 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay_share.xml) 1 <?xml version="1.0" encoding="utf-8"?> 2 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/