首页 > 其他 > 详细

完全退出程序,退出所有activity

时间:2014-04-01 23:51:22      阅读:841      评论:0      收藏:0      [点我收藏+]

这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。

比如:

System.exit(0);
不行。

还有什么跳转到第一个activity,同时把栈顶的activity全部清除,最后再finish();还是不行。。不知道为什么。

这里是我自己的一个方法,效果非常好。

原理:在每个activity都注册一个广播接收器,用来接收关闭activity的广播。当需要退出程序的时候就发送一条关闭activity的广播,这样所有的activity都会接收到,然后所有activity都会自己finish了。

package com.example.exitsystem;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

/**
 * 所有activity都继承此类,同时也就等于注册了广播,
 * 当需要完全退出系统的时候就可以发送广播,
 * action为com.example.exitsystem.system_exit(自定义),
 * 这样就可以随时退出所有的activity了
 * @author LinZhiquan
 *
 */
public class SuperActivity extends Activity {
	/** 广播action */
	public static final String SYSTEM_EXIT = "com.example.exitsystem.system_exit";
	/** 接收器 */
	private MyReceiver receiver;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		//注册广播,用于退出程序
		IntentFilter filter = new IntentFilter();
		filter.addAction(SYSTEM_EXIT);
		receiver = new MyReceiver();
		this.registerReceiver(receiver, filter);
	}
	
	@Override
	protected void onDestroy() {
		//记得取消广播注册
		this.unregisterReceiver(receiver);
		super.onDestroy();
	}
	
	private class MyReceiver extends BroadcastReceiver {
		@Override
		public void onReceive(Context context, Intent intent) {
			finish();
		}
	}
}


package com.example.exitsystem;

import android.os.Bundle;

/**
 * 普通activity, 继承SuperActivity
 * @author LinZhiquan
 *
 */
public class MainActivity extends SuperActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

需要退出程序的时候发送一条广播即可。

        Intent intent = new Intent();
        intent.setAction(SuperActivity.SYSTEM_EXIT);
        sendBroadcast(intent);


完全退出程序,退出所有activity,布布扣,bubuko.com

完全退出程序,退出所有activity

原文:http://blog.csdn.net/qiantujava/article/details/22756721

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!