import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
/**
* MyAcitivty类说明:Acitivty的子类 基础该类的子类必须实现onCreate 方法
* 在该类中注册了一个BroadcastReceiver 用于接收退出消息
* 在接收到消息之后结束自身
*/
public abstract class MyAcitivty extends Activity
{
/**
* 负责各个具体 Activity 的显示
*/
public abstract void onCreate();
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
onCreate();
RegListener();
}
/**
* 注册退出事件监听
*/
public void RegListener()
{
ExitListenerReceiver exitre = new ExitListenerReceiver();
IntentFilter intentfilter = new IntentFilter();
intentfilter.addAction(this.getPackageName() + "." + "ExitListenerReceiver");
this.registerReceiver(exitre, intentfilter);
}
class ExitListenerReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
((Activity) arg0).finish();
}
}
}
其他的Acitivty都去继承这个类
退出只要注册一下就可以了
myActivity.sendBroadcast(new Intent(myActivity.getPackageName() + ".ExitListenerReceiver"));
唯一要注意的是跳出要用下面的
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setClass(context, myClass);
context.startActivity(intent);