AlarmManager问题?

时间:2011-07-06 12:46:13

标签: android alarmmanager

我在我的应用程序中使用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 个答案:

答案 0 :(得分:4)

您好,您无法在BroadcastReceiver ..

中使用AlertDialog

您在BroadcastReciver中调用另一个Activity类,如下所示。

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

在本课程中,您使用了Alert Dialog。

答案 1 :(得分:0)

我可以告诉你如何解决这个问题的主要思路。

  • 在AlarmManager中使用的BroadcastReceiver是一个带静态上下文的静态类。

  • 应该在非静态上下文而不是静态上下文中执行AlertDialog。

我有两个解决此问题的方法。

因此,当您在非静态上下文中获取警报事件时,可以使用AlertDialog。

答案 2 :(得分:0)

迟到但对某人可能仍然有用:

更正如下代码:

alertDialog = new AlertDialog.Builder(context).create(); // Now The constructor AlertDialog.Builder is defined.