【问题标题】:onClick close the applicationonClick 关闭应用程序
【发布时间】:2014-11-25 07:52:47
【问题描述】:

我有一个 android 应用程序 .. 我想当用户单击退出按钮时,它将显示一条确认消息,如果他单击是,则关闭整个应用程序 ..

试过这段代码,但没有用:

AlertDialog.Builder alertBuilder=new AlertDialog.Builder(AdminEditProfile.this);
alertBuilder.setTitle("Exit");
alertBuilder.setMessage("Are you sure you want to exit from the application?");
alertBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {

        dialog.cancel();
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(1);
    }
});
alertBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {

        dialog.cancel();    
    }
});
alertBuilder.create().show();

有什么办法吗>

请帮忙,谢谢:)。

【问题讨论】:

  • 向您发布 log-cat 错误。
  • 强行关闭应用是一种不好的做法。请改用HomeBack 按钮。
  • 这是不好的做法:android.nextapp.com/site/fx/doc/exit
  • Google 习惯于弃用并最终削弱他们认为被滥用的部分 API。就像在 5.0 中一样,他们添加了一个合法的(但有些有限的)信息亭模式,并消除了人们用来模拟它的黑客攻击。因此,即使您找到了完全退出应用程序的 hack,也不要指望它始终有效。
  • 您可以在这里找到答案:stackoverflow.com/a/5036668/1557187

标签: android


【解决方案1】:

你正在扼杀你的进程,这是一个坏主意。 请看这个帖子找出原因:

Why calling Process.killProcess(Process.myPid()) is a bad idea?

我建议你改用finish();

如果你想完成整个应用程序(取决于你到底需要什么)我建议你看看这篇文章:

How to close Android application?

【讨论】:

  • finish();将关闭当前活动并将我返回到上一个活动..我想关闭整个应用程序..有没有办法?
  • 非常感谢您的重播,我找到了答案,您发布的第二个链接是我的这篇文章:)
  • 哦,对不起,我把它修好了:D
【解决方案2】:

刚刚完成();可以做关闭Activity的工作。是否有任何服务在后台运行?

【讨论】:

  • finish();将关闭当前活动并将我返回到上一个活动..我想关闭整个应用程序..有没有办法?
  • 感谢重播..我找到了正确答案:)
【解决方案3】:

如果它是一个简单的应用程序,您可以致电finish() 并关闭您所有打开的活动。 也许您应该从您的应用程序中注销用户?

【讨论】:

  • finish();将关闭当前活动并将我返回到上一个活动..我想关闭整个应用程序..有没有办法?
  • 使用广播接收器并注册您的所有活动以执行特定操作 - 然后关闭所有获取此信息的活动
  • 感谢重播..我找到了正确答案:)
【解决方案4】:

我的示例代码试试这个

    new AlertDialog.Builder(MainActivity.this)
      .setTitle("Application Informaiton")
       .setMessage("" )
       .setPositiveButton("Got it", new 
         DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) { 
         // continue with delete
        }
        })
      .setCancelable(false)
      .show();

        }
        else if(item.getTitle().equals("Stop this Application"))
        {
            new AlertDialog.Builder(MainActivity.this)
           .setTitle("Stop application?")
           .setMessage("Stop this application and exit? You'll need to
            re-launch the application to use it again.")
           .setPositiveButton("Don't stop", new 
            DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) { 
            // continue with delete
            }
            })
            .setNegativeButton("Stop and exit", new 
              DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) { 
                // continue with delete
                MainActivity.this.finish();
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                    startActivity(intent);
                                }
                             })
                            .setCancelable(false)
                             .show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多