Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 獨辟蹊徑之android程序完全退出的一種途徑

獨辟蹊徑之android程序完全退出的一種途徑

編輯:關於Android編程

最近做一個項目時,意外發現了一種可以讓android程序完全退出的一種途徑,遙想當年為了找到一種有效地途徑讓android程序完全退出時的窘迫,不由得有些感慨。這裡不敢獨享,和大家分享一下,也是拋磚引玉,希望有大牛出來繼續探討一下這個問題。

方法很簡單,其實就是一層窗戶紙,知道了,就明白了。用jni調用linux系統調用exit即可。下面給出具體實現:

package com.example.bitmaptest;

import android.util.Log;

public final class AppUtils {
	private static final String TAG = "AppUtils";
	
	static {
		System.loadLibrary("appUtils");
	}
	
	private native void native_exit();
	
	public void exit() {
		Log.d(TAG, "exit");
		
		if (listener != null) {
			listener.onExit();
		}
		
		native_exit();
	}
	
	public static interface OnExitListener {
		void onExit();
	}
	
	private OnExitListener listener;
	public void setOnExitListener(OnExitListener listener) {
		this.listener = listener;
	}
	public OnExitListener getOnExitListener() {
		return listener;
	}
}

jni實現如下:

JNIEXPORT void JNICALL Java_com_example_bitmaptest_AppUtils_native_1exit
  (JNIEnv * env, jobject obj) {
		
	exit(0);

	return;
}

備注:使用該方法後,log裡會發現如下內容:

06-15 09:20:49.316: I/ActivityManager(805): Process com.example.bitmaptest (pid 5784) has died.
06-15 09:20:49.316: I/WindowState(805): WIN DEATH: Window{4214d2f0 u0 com.example.bitmaptest/com.example.bitmaptest.MainActivity}

但是這裡由於要完全退出app,所以竊以為無所謂了。


  1. 上一頁:
  2. 下一頁:
Copyright © Android教程網 All Rights Reserved