结束androidapp:

1.finish – 结束当前的activity,但并不释放Activity占用的资源。

2.android.os.Process.killProcess(int pid); 结束PId的进程,并释放资源

3.system.exit(int) 关闭虚拟机,结束整个app;int0标示正常结束,1表示异常结束


其中,23虽然会结束掉app,但是在某些情况下,如在多个activity情况下,结束掉其中一个,结束后app会重启,这是androidapp的一种安全机制,防止应用异常崩溃;


还有两种方法结束应用:

4.restartPackage(getpackageName());

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

manager.restartPackage(getPackageName()); 

需要权限:

 android:name="android.permission.RESTART_PACKAGES" /> 

但是此方法只在android2.2以前可以使用,之后的版本则不能使用

5.针对2.2后的版本,ActivityManager提供了一个killBackgroundProcess(packagename)来结束app

所以,没有一个相对比较完美的方法来结束APP,所以为了实现结束app,总结了以下几个办法:

1.根据上面没45两条,在退出的时候,对当前的android版本进行判断,2.2之前执行4,反之则5


2.Application里面创建一个全局类型的List,没启动一个Activity就往list添加,反之则移除,最后在退出整个app时,把list里面的activity全部finish掉,最后在system.exit(0)整个应用。


3. 发送结束广播,当需要结束发送结束广播信号,在每个activity收到信号的时候,finish即可


更多相关文章

  1. Android(安卓)Studio:Support Library依赖包的版本号
  2. 引用JNI版本----MediaMetadataRetriever获取视频缩略图(真机4.0测
  3. Android(安卓)简史
  4. Android(安卓)N及以上版本应用安装包下载完成自动弹出安装界面的
  5. Android(安卓)的一些基本问题解决方法(android studio)
  6. 零基础学习教程之Linux下搭建android开发环境
  7. Android跨进程通信IPC之2——Linux的跨进程通信详解
  8. Java.lang.UnsatisfiedLinkError :nativeSetExternalAssetPath错
  9. Tensorflow编译android平台的so库和jar包

随机推荐

  1. Android(安卓)自定义Progress Bar
  2. android创建自定义对话框
  3. Android(安卓)获得可用摄像头id
  4. Android的报错信息at com.android.ddmlib
  5. 2011.10.10(2)——— android Clipping关于
  6. Android调用Webview中的js方法
  7. Android(安卓)360度摇杆
  8. android adb adbd analyse
  9. Android(安卓)封装http请求的工具类
  10. android 加法程序