【问题标题】:Close the app programmatically (know package name)以编程方式关闭应用程序(知道包名)
【发布时间】:2013-09-05 16:50:19
【问题描述】:
我使用以下代码 sn-p 在设备上启动应用程序:
Context mContext = getContext();
String packageName = getPackageName(); //the app to launch
Intent mIntent = getPackageManager().getLaunchIntentForPackage(packageName);
if(mIntent!=null){
mContext.startActivity(mIntent);
}
它可以工作,应用程序启动,但是,我不知道使用packageName 关闭启动的应用程序的方法。
如果我只知道包名,如何关闭启动的应用程序?
【问题讨论】:
标签:
android
performance
android-layout
android-intent
android-package-managers
【解决方案1】:
您无法关闭其他应用。只有系统才能做到这一点。
但如果您也是该应用程序的作者,您可以在该应用程序的活动中创建一个接收器,该接收器接受一个告诉它完成()活动的意图。
【解决方案2】:
您无法从您的应用程序中关闭其他应用程序。您的问题有一个解决方法,在基于包名称启动应用程序后,您可以发送主页意图,这将为用户提供相同的体验。
Intent mIntent = getPackageManager().getLaunchIntentForPackage(packageName);
if(mIntent!=null){
mContext.startActivity(mIntent);
}
//sleep for 250ms or whatever time using handler
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);