【转】android绝对退出

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);

posted @ 2013-11-30 13:34  时光独白  阅读(287)  评论(0编辑  收藏  举报