2011-07-06 26 views
1

私は自分のアプリでAlarmManagerを使用しています。私は、アラームが発生している間ユーザに警告を表示したい。 AlertDialogを使用しましたが、エラーが発生します。どうすればこの問題を解決できますか? そして、私は警告音と振動を入れたい。リンクまたはコード。あなたは以下のようBroadcastReciverで別のActivityクラスを呼び出すAlarmManagerに問題がありますか?

こんにちはあなたはAlertDialog BroadcastReceiverで使用することはできません

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

} 
} 
+0

@@ REALUSERは、あなたが回答をチェックする必要がありますか? – Nikhil

+0

@@ realuserこの答えが正しいと分かったら、それは他の人にもっと役立ちます。 – Nikhil

答えて

4

..

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

このクラスでは、アラートダイアログを使用しました。

+0

ありがとうNik、それは非常に便利でした。 – realuser

0

この問題を解決する方法の主なアイデアを示すことができます。

  • AlarmManagerで使用するBroadcastReceiverは、静的コンテキストを持つ静的クラスです。

  • AlertDialogは、静的コンテキストの代わりに非静的コンテキストで実行する必要があります。

私はこの問題の解決策が2つあります。

だから、あなたはAlertDialogを使用することができます。

0

後期誰かのために、多分まだ便利:

は、以下のようなコードを修正してください:

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