12

如何在一次单击中杀死整个应用程序..finish() 不起作用?它重定向到以前的活动...请指导我。

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

        }
4

5 回答 5

30

System.exit()如果堆栈上有多个活动,则不会杀死您的应用程序

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

样品

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

有关更多详细信息,请参阅退出应用程序是否令人不悦?,如何以编程方式强制停止我的 android 应用程序?

我希望这能帮到您。

于 2013-05-31T07:13:32.607 回答
5

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

Process.killProcess( Process.myPid() ); 
于 2013-05-31T07:13:28.013 回答
1

结束 ()

在 API 级别 1 中添加 当您的活动完成并应该关闭时调用它。Activity Result 会通过 onActivityResult() 传播回启动您的人。

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

为什么完成()不适合你?

举一个例子,活动 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);
    
于 2013-05-31T07:22:50.537 回答
1
  • 用于startActivityForResult开始任何活动。
  • 写下您finish()onActivityResult其中开始另一项活动的活动,如果result == RESULT_CANCELLED
  • 最后finish()在出口处使用。
于 2013-05-31T07:12:22.890 回答
1

我想你想要这个

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
于 2013-05-31T07:12:25.707 回答