【问题标题】:how to finish an activity from a handler?如何完成处理程序的活动?
【发布时间】:2011-12-07 10:57:05
【问题描述】:

我正在从处理程序调用警报对话框。警报对话框有 2 个按钮“再次播放”和“退出”。 我已经编写了代码来重新启动“再次播放”按钮中的活动。但是当我单击退出按钮时,我不知道如何完成应用程序。我不能从我的处理程序调用完成()。下面是我的代码。请任何人帮助我...

private Handler handler = new Handler() {
     public void handleMessage(Message msg) {
         AlertDialog.Builder builder = new AlertDialog.Builder(_context);
            builder.setMessage("Game Over !!!")
                    .setCancelable(false)
                    .setPositiveButton("Play Again",
                            new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog,int which) {
                                    //thread.start();
                                    Intent intent = new Intent ( _context , DroidzActivity.class );                                    
                                    _context.startActivity ( intent ); 
                                }
                            })
                    .setNegativeButton("Exit",
                            new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog,int which) {

                                    dialog.cancel(); 

                                }
                            });
            AlertDialog alert = builder.create();
            alert.show();
           }




            };

【问题讨论】:

  • 请帮帮我,我被困在这...
  • 没人知道解决办法?????? :(

标签: android handler android-alertdialog activity-finish


【解决方案1】:

如果您的上述代码在您想要完成的活动中,请尝试以下代码:

YourActivity.this.finish();

编辑: 我建议不要破坏当前的活动,而是从以下方式开始:

Intent intent = new Intent ( _context , DroidzActivity.class );    
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
_context.startActivity ( intent ); 

并在onNewIntent() 方法中处理“再次播放”操作。您需要在活动中覆盖它。

更多参考请查看:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP

http://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent)

【讨论】:

  • 此警报对话框代码不在主活动类中..它在一个单独的类中..所以我无法使用它
  • 我建议使用Intent.FLAG_ACTIVITY_SINGLE_TOPonNewIntent(),而不是破坏活动并重新启动它。我更新了我的答案。
  • 我只想在点击“退出”按钮时退出应用程序...无需重新启动活动
  • _context是您想要完成的活动吗?在哪里初始化?
猜你喜欢
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2013-11-11
  • 1970-01-01
相关资源
最近更新 更多