Android杀死进程

Android kill process

本问题已经有最佳答案,请猛点这里访问。

如何在单击中终止整个应用程序..完成()不起作用? 它重定向到以前的活动...请指导我。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
          public void onClick(View arg0) {
            // TODO Auto-generated method stub
            WallpaperManager wp = WallpaperManager
                    .getInstance(getApplicationContext());

            try {
                Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                        .getDefaultDisplay();
                int width = d.getWidth();
                int height = d.getHeight();
                wp.setBitmap(b1);
            } catch (IOException e) {
                Log.e("error","Cannot set image as wallpaper", e);
            }

                        finish();

        }


如果您在堆栈上有多个活动,则System.exit()不会终止您的应用

以这种方式使用android.os.Process.killProcess(android.os.Process.myPid());

样品

1
2
3
4
public void onBackPressed() {
    android.os.Process.killProcess(android.os.Process.myPid());
    super.onBackPressed();
}

有关更多详细信息,请参阅退出应用程序不赞成? ,如何以编程方式强制停止我的Android应用程序?

我希望这能帮到您。


您可以使用此功能关闭您的应用程序

1
Process.killProcess( Process.myPid() );


完成()

在API级别1中添加
在您的活动完成后调用此选项并应关闭。活动结果将传播回通过onActivityResult()启动您的任何人。

您必须使用System.exit()在单击时终止您的应用程序以直接关闭活动。

Why finish() is not working for you ?

举一个例子,其中活动A调用了活动B,当你在活动B上调用了finish(),如果完成活动,但是当活动A给他调用它并且它是之前的活动时,它返回到活动A屏幕

What you can do?

  • 你可以调用System.exit() - 无论从哪里调用它都会直接杀死应用程序无关紧要。
  • 使用Process.killProcess(您的进程ID);

  • 通过使用finish()然后调用来终止当前活动来启动主页活动

    1
    2
    3
    4
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

  • 我想你想要这个

    1
    2
    3
    4
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

    • 使用startActivityForResult开始任何活动。
    • 如果result == RESULT_CANCELLED,则在您开始其他活动的活动的onActivityResult中写入finish()
    • 最后在退出点使用finish()