大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
最近的一个项目,无意中发现了一个方法,使android要完全退出程序的一种方法,遥想当年,以便找到让的有效途径android遇险完全退出程序,我不由得有些感慨。
在这里,不敢独享。和大家分享一下,还启动,来继续探讨一下这个问题。
方法非常easy。事实上就是一层窗户纸,知道了。就明确了。
用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,所以,窃以为也没关系。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117379.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...