import android.app.Activity;android
import android.content.BroadcastReceiver;app
import android.content.Context;ide
import android.content.Intent;this
import android.content.IntentFilter;spa
import android.os.Bundle;繼承
/**事件
* MyAcitivty類說明:Acitivty的子類 基礎該類的子類必須實現onCreate 方法ci
* 在該類中註冊了一個BroadcastReceiver 用於接收退出消息get
* 在接收到消息以後結束自身it
*/
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);