Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android中實現完全退出程序方法(退出所有activity)

android中實現完全退出程序方法(退出所有activity)

編輯:關於Android編程

這是一個很多很多人都 會遇到的問題,我也試過了很多方法,都不怎麼好用。
比如:

復制代碼 代碼如下:
System.exit(0);

不行。
還有什麼跳轉到第一個activity,同時把棧頂的activity全部清除,最後再finish();還是不行。。不知道為什麼。
這裡是我自己的一個方法,效果非常好。
原理:在每個activity都注冊一個廣播接收器,用來接收關閉activity的廣播。當需要退出程序的時候就發送一條關閉activity的廣播,這樣所有的activity都會接收到,然後所有activity都會自己finish了。

復制代碼 代碼如下:
package com.example.exitsystem;

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

/**
 * 所有activity都繼承此類,同時也就等於注冊了廣播,
 * 當需要完全退出系統的時候就可以發送廣播,
 * action為com.example.exitsystem.system_exit(自定義),
 * 這樣就可以隨時退出所有的activity了
 * @author LinZhiquan
 *
 */
public class SuperActivity extends Activity {
 /** 廣播action */
 public static final String SYSTEM_EXIT = "com.example.exitsystem.system_exit";
 /** 接收器 */
 private MyReceiver receiver;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  //注冊廣播,用於退出程序
  IntentFilter filter = new IntentFilter();
  filter.addAction(SYSTEM_EXIT);
  receiver = new MyReceiver();
  this.registerReceiver(receiver, filter);
 }
 
 @Override
 protected void onDestroy() {
  //記得取消廣播注冊
  this.unregisterReceiver(receiver);
  super.onDestroy();
 }
 
 private class MyReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
   finish();
  }
 }
}


復制代碼 代碼如下:
package com.example.exitsystem;

import android.os.Bundle;

/**
 * 普通activity, 繼承SuperActivity
 * @author LinZhiquan
 *
 */
public class MainActivity extends SuperActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


需要退出程序的時候發送一條廣播即可。

復制代碼 代碼如下:
        Intent intent = new Intent();
        intent.setAction(SuperActivity.SYSTEM_EXIT);
        sendBroadcast(intent);

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved