AndroidはすべてのActivityを閉じます

1547 ワード

/***使用方法:*1、すべてのActivityがこのbaseActivity**2を継承し、終了するときにthisを呼び出す.clossAllActivity()**/
 
 
  
package com.abc.util;

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

/**
 * function:     Activity
 * 
 *    Activity,  Activity        Activity,
 *      Activity     ,        ,    Activity   。
 *
 */
public class BaseActivity extends Activity{
	
	public static final String ACTION_CLOSS_ACTIVITY = "com.abc.BaseActivity.finish";
	
	private BroadcastReceiver broadcastReceiver = new BroadcastReceiver(){

		@Override
		public void onReceive(Context context, Intent intent) {
			//     
			BaseActivity.this.finish();
		}
	};

	@Override
	//--activity        
	protected void onResume() {
		super.onResume();
		//     activity      
		IntentFilter filter = new IntentFilter();
		filter.addAction(ACTION_CLOSS_ACTIVITY);
		this.registerReceiver(broadcastReceiver, filter);
	}
	

	//Activity has leaked IntentReceiver  that was originally registered here. 
	//Are you missing a call to unregisterReceiver()?
	//                  ,     。
	@Override
	protected void onDestroy() {
		this.unregisterReceiver(broadcastReceiver);
		super.onDestroy();
	}

	public void closeAllActivity() {
		//     ,    activity
		Intent intent = new Intent();
		intent.setAction(ACTION_CLOSS_ACTIVITY);
		sendBroadcast(intent);//--       
	}
}