1

私はsmsReceiverを持っており、SMSを取得するたびにpoppupをトリガーしたい.SMSが来るたびにsmsreceiverのメソッドがトリガーされます。次に、ダイアログボックスを呼び出そうとします

@overide //of smsreciver class
public void onReceive(Context context, Intent intent){
  showNotificattion(context)
}

private void showNotificattion(Context context){
        Log.d("sms","showing notification now 2");

         // Create out AlterDialog
          Builder builder = new AlertDialog.Builder(context); 
          //even tried context.getApplicationcontext()
          builder.setMessage("This will end the activity");
          builder.setCancelable(true);
          builder.setPositiveButton("I agree", new OkOnClickListener());
          builder.setNegativeButton("No, no", new CancelOnClickListener());
          AlertDialog dialog = builder.create();
          dialog.show();
}

しかし、SMSが来るたびに私はフォローします

07-25 14:02:04.235: E/AndroidRuntime(17935): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
07-25 14:02:04.235: E/AndroidRuntime(17935):    at android.view.ViewRoot.setView(ViewRoot.java:566)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:179)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at android.app.Dialog.show(Dialog.java:265)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at com.example.xsms.SmsReceiver.showNotificattion(SmsReceiver.java:92)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at com.example.xsms.SmsReceiver.doTask(SmsReceiver.java:73)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at com.example.xsms.SmsReceiver.onReceive(SmsReceiver.java:44)
07-25 14:02:04.235: E/AndroidRuntime(17935):    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2103)
07-25 14:02:04.235: E/AndroidRuntime(17935):    ... 10 more

これを修正する方法は?そして、アプリをバックグラウンド サービスとして実行したいので、ダイアログが表示されるはずです

4

1 に答える 1

2

間違った使い方をしているContext

ABroadcastReceiverまたは aServiceはダイアログを開始できません。

Activityダイアログテーマで作成し、で起動する必要がありますstartActivity()

<activity android:theme="@android:style/Theme.Dialog" />
于 2013-07-25T09:13:31.777 に答える