Android杀死进程

时间:2013-05-31 07:07:05

标签: android process kill

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

          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();

        }

5 个答案:

答案 0 :(得分:25)

如果您在堆栈中有多个活动,则

System.exit()不会终止您的应用

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

表示样本

public void onBackPressed() {
    android.os.Process.killProcess(android.os.Process.myPid());
    super.onBackPressed();
}

有关详细信息,请参阅Is quitting an application frowned upon?How to force stop my android application programmatically?

我希望这会对你有所帮助。

答案 1 :(得分:5)

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

Process.killProcess( Process.myPid() ); 

答案 2 :(得分:1)

  • 使用startActivityForResult开始任何活动。
  • 如果finish() onActivityResult,请在您开展其他活动的活动的result == RESULT_CANCELLED中写下finish()
  • 最后在退出处使用{{1}}。

答案 3 :(得分:1)

我想你想要这个

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

答案 4 :(得分:1)

Finish ()

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

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

  

为什么finish()不适合你?

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

  

你可以做什么?

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

  3. 通过使用finish()然后调用

    来终止当前活动来启动主页活动
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);