Dlaczego nie wyświetla mi się okno dialogowe komunikatu, gdy usługa jest aktywowana.

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


}

Pojawia się Toast, odtwarzany jest dźwięk, tylko okno dialogowe nie nadchodzi, dlaczego?

0
Samuel 17 luty 2012, 22:07

2 odpowiedzi

Najlepsza odpowiedź

Musisz zadzwonić builder.create(), aby utworzyć AlertDialog, a następnie show() w oknie dialogowym, aby je wyświetlić.

Jeśli jednak jest to usługa, nie będzie można bezpośrednio wyświetlić okna dialogowego. Spójrz na to pytanie, jak wyświetlić okno dialogowe z usługi: Okno dialogowe alertu z usługi Android

3
Community 23 maj 2017, 15:20

Musisz zadzwonić do create() w Konstruktorze, aby utworzyć okno alertów, które można następnie wyświetlić za pomocą połączenia z show(). Więcej informacji na ten temat znajdziesz w przewodniku po dialogach.

0
Luminger 17 luty 2012, 22:13