Android服务类

时间:2012-02-17 18:07:46

标签: android

为什么在激活服务时它没有向我显示messageboxdialog。

@Override
public void onStart(Intent intent, int startid) {
    Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onStart");
    player.start();

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure you want to exit?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    AlarmService.this.onDestroy();
               }
           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
               }
           });


}

Toast出现的声音正在播放只有showdialog没有出现,为什么?

2 个答案:

答案 0 :(得分:3)

您需要致电builder.create()来创建AlertDialog,然后在对话框中创建show()以显示它。

但是,如果这是一项服务,您将无法直接显示该对话框。请查看有关如何在服务中显示对话框的问题:Alert dialog from Android service

答案 1 :(得分:0)

您必须在构建器上调用create()来创建一个AlertDialog,然后可以通过调用show()来显示它。有关此主题的更多信息,请参阅the dialogues guide