如何从任务管理器中杀死Android应用程序?

时间:2016-07-22 02:42:12

标签: android

我对Android应用程序有疑问。

“如何从任务管理器中杀死Android应用程序?”。我尝试了System.exit(0)android.os.Process.killProcess(android.os.Process.myPid());finish(),但他们只停止了应用,并且不会从任务管理器中删除应用。请告诉我怎么做。

更新: 我使用finishAffinity()清除了任务管理器中的应用,System.exit(0)停止了活动,对我的问题看起来很好。

2 个答案:

答案 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”,因为我希望用户能够在最近的列表中查看应用程序,直到我的应用程序触发以编程方式关闭应用程序。