Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android安全退出應用程序

Android安全退出應用程序

編輯:關於Android編程

  1. 殺死進程。 這種方法是沒有效果的只能殺死當前的Activity無法關閉程序,在1.5的時候有用,谷歌設計的時候規定程序不能自殺android.os.Process.killProcess(android.os.Process.myPid()).
  2. 終止當前正在運行的Java虛擬機,導致程序終止. 這種方法也是沒有效果的,因為Android用的是dalvik虛擬機 System.exit(0);
  3. 強制關閉與該包有關聯的一切執行 這種方法只能殺死別人,無法殺死自己
    java ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); manager.restartPackage(getPackageName()); 同時需要申請權限

    既然上面介紹的三種方法都沒有效果,那麼怎麼才能退出應用程序呢?
    就是自定義一個Application,在該Application中去定義一個List的集合來記錄中每一個開啟的Activity,在退出的時候去遍歷這個List集合,然後挨個的進行mActivity.finish()方法,這要求在每開啟一個Activity的時候都加入到List集合中,並且在Activity退出的時候從List集合中將其移除。
    ```java public class Activity01 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.add(this);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.remove(this);
    }
    
    public void click1(View view){
        Intent intent = new Intent(this,Activity01.class);
        startActivity(intent);
    }
    public void click2(View view){
        Intent intent = new Intent(this,Activity02.class);
        startActivity(intent);
    }
    
    public void exit(View view){
        MyApp myApp = (MyApp) getApplication();
         for(Activity ac : myApp.activies){
             ac.finish();
         }
    }
    

    }

    public class Activity02 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.add(this);
    }
    
    public void click1(View view) {
        Intent intent = new Intent(this, Activity01.class);
        startActivity(intent);
    }
    
    public void click2(View view) {
        Intent intent = new Intent(this, Activity02.class);
        startActivity(intent);
    }
    
    public void exit(View view) {
        MyApp myApp = (MyApp) getApplication();
        for (Activity ac : myApp.activies) {
            ac.finish();
        }
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.remove(this);
    }
    

    }

    public class MyApp extends Application { //存放當前應用程序裡面打開的所有的activity public List activies; @Override public void onCreate() { activies = new ArrayList(); super.onCreate(); } }

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