Ошибка AlarmManager? - PullRequest
       1

Ошибка AlarmManager?

1 голос
/ 06 июля 2011

Я использую AlarmManager в своем приложении. Я хочу отобразить пользователю предупреждение во время тревоги. Я использовал AlertDialog, но он выдает ошибку. Как я могу решить эту проблему? И хочу поставить предупреждающий звук и вибрацию. Любая ссылка или код.

public class AReceiver extends BroadcastReceiver{

 AlertDialog alertDialog;

 public void onReceive(Context context, Intent intent) {

     alertDialog = new AlertDialog.Builder(this).create(); // Error here: The constructor AlertDialog.Builder is undefined.
     alertDialog.setTitle("title");

     alertDialog.setButton("OK", new DialogInterface.OnClickListener() {

          public void onClick(DialogInterface dialog, int which) {
            return;
        } });

 }
}

Ответы [ 3 ]

4 голосов
/ 06 июля 2011

Привет, вы не можете использовать AlertDialog в BroadcastReceiver ..

, когда вы вызываете другой класс Activity в BroadcastReciver, как показано ниже.

Intent myIntent = new Intent(context, AlarmActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);

И в этом классе вы использовали Alert Dialog.

0 голосов
/ 27 октября 2016

Поздно, но, возможно, еще кому-нибудь пригодится:

Исправьте код, как показано ниже:

alertDialog = new AlertDialog.Builder(context).create(); // Now The constructor AlertDialog.Builder is defined.
0 голосов
/ 07 октября 2016

Я могу показать вам, как решить эту проблему.

  • BroadcastReceiver, используемый в AlarmManager, является статическим классом со статическим контекстом.

  • AlertDialog должен выполняться в нестатическом контексте вместо статического контекста.

У меня есть два решения этой проблемы.

Таким образом, когда вы получаете событие тревоги в нестатическом контексте, вы можете использовать AlertDialog.

...