我对Android应用程序有疑问。
“如何从任务管理器中杀死Android应用程序?”。我尝试了System.exit(0)
,android.os.Process.killProcess(android.os.Process.myPid());
和finish()
,但他们只停止了应用,并且不会从任务管理器中删除应用。请告诉我怎么做。
更新:
我使用finishAffinity()
清除了任务管理器中的应用,System.exit(0)
停止了活动,对我的问题看起来很好。
答案 0 :(得分:0)
Intent mStartActivity = new Intent(context, StartActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
System.exit(0);
答案 1 :(得分:-1)
我的解决方案基于以上客人,以及gilsaints88的评论(适用于Android L兼容性):
将此活动添加到AndroidManifest.xml文件中:
<activity
android:name="com.example.ExitActivity"
android:theme="@android:style/Theme.NoDisplay"
android:autoRemoveFromRecents="true"/>
然后创建一个类ExitActivity.java:
public class ExitActivity extends Activity{
@Override protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if(android.os.Build.VERSION.SDK_INT >= 21){
finishAndRemoveTask();
}
else{
finish();
}
}
public static void exitApplication(Context context)
{
Intent intent = new Intent(context, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(intent);
}
}
然后,只要您想强制关闭应用程序并将其从最近的列表中删除,请致电:
ExitActivity.exitApplication(context);
此解决方案适用于我,而不是声明android:excludeFromRecents =“true”,因为我希望用户能够在最近的列表中查看应用程序,直到我的应用程序触发以编程方式关闭应用程序。