Friday, January 11, 2013

[Android] 如何結束應用程式(將所有的Activity通通關掉)

先寫一個用於關閉用的Class

package com.example.closeallactivity;


import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.app.Activity;
import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

public abstract class BaseActivity extends Activity {

public static final String FINISH_ALL_ACTIVITIES_ACTIVITY_ACTION = "com.hrupin.FINISH_ALL_ACTIVITIES_ACTIVITY_ACTION";

private BaseActivityReceiver baseActivityReceiver = new BaseActivityReceiver();

public static final IntentFilter INTENT_FILTER = createIntentFilter();



private static IntentFilter createIntentFilter(){

IntentFilter filter = new IntentFilter();

filter.addAction(FINISH_ALL_ACTIVITIES_ACTIVITY_ACTION);

return filter;

}



protected void registerBaseActivityReceiver() {

registerReceiver(baseActivityReceiver, INTENT_FILTER);

}



protected void unRegisterBaseActivityReceiver() {

unregisterReceiver(baseActivityReceiver);

}



public class BaseActivityReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals(FINISH_ALL_ACTIVITIES_ACTIVITY_ACTION)){

finish();

}

}

}



protected void closeAllActivities(){

sendBroadcast(new Intent(FINISH_ALL_ACTIVITIES_ACTIVITY_ACTION));

}

}


然後將所有的Activity繼承此類別
並且必須要將所有的Activity註冊
須放入registerBaseActivityReceiver();

當要設定某個按鈕可關閉所有的Activity
放入closeAllActivities();
即可



No comments:

Post a Comment