如何从处理程序完成一个活动?

时间:2011-12-07 10:57:06

标签: android handler alertdialog activity-finish

我正在调用Alert对话框froma handler.Alert对话框有2个按钮“再次播放”和“退出”。 我已经编写了代码来重新启动“再次播放”按钮。但是当我点击退出按钮时,我不知道如何完成应用程序。我不能从我的handler.given调用finish(),这是我的代码。请任何人帮助我......

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




            };

1 个答案:

答案 0 :(得分: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