如何在Android中关闭其他应用?
我一直在开发一个应用程序,我需要在我的代码中关闭另一个应用程序。 有谁知道任何API打电话关闭应用程序?
顺便说一句:我的应用程序将预先安装。
谢谢
自Android 2.2
(即前进)以来,您只能关闭其他应用程序的background processes
,您无法再关闭其主要活动。
如果您的应用定位Android <2.2,请查看android.permission.RESTART_PACKAGE
。
如果你希望它在2.2及以上(你应该:-))上正常工作,请查看android.permission.KILL_BACKGROUND_PROCESSES
,但同样,这只会关闭后台服务等等,并可能“搞乱”其他应用程序而不是做好的。
使用正确的权限,您可以执行以下操作:
private ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); am.restartPackage("com.jimmy.appToBeClosed");
尝试这个
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService("activity"); Method forceStopPackage; forceStopPackage =am.getClass().getDeclaredMethod("forceStopPackage",String.class); forceStopPackage.setAccessible(true); forceStopPackage.invoke(am, pkg);
在清单文件中添加此项
如果两个应用程序都属于您,则可以使用AIDL进行进程间通信,以发送消息告知其他应用程序关闭。 请参阅http://developer.android.com/guide/developing/tools/aidl.html 。
由于Android活动生命周期,您根本不想关闭其他应用程序。
没有任何好处,如果它不是你的,那么关闭另一个应用程序总是有害的,关闭你自己的应用程序几乎没什么好处。
http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
如果你肯定知道你永远不会需要一个root活动及其子(一个“app”),你可以阻止它释放内存(它不会释放那么多),但如果你这样做,用户可能会当它仍然在缓存中时重新启动它,停止,如果恢复停止状态,这可能会导致问题。 所以这是一个不好的做法。