2

プッシュ通知を受け取り、アプリが表示されるたびに (onStart() / onStop() ペア)、GCMIntentService クラスからユーザーにダイアログを表示しようとしています。(私はまだ次の GCM に切り替えていません。実際に切り替えましたが、問題があったため、古いものに切り替えました)

protected void onMessage(Context context, Intent intent)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(context); //issue here

builder.setMessage("You have a notification").setTitle("Notification");
builder.setPositiveButton("dismiss",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
                        intent.addCategory(Intent.CATEGORY_HOME);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});

AlertDialog dialog = builder.create();
dialog.show();
 } 

私が得ているエラーは

android.view.WindowManager$BadTokenException: ウィンドウを追加できません -- トークン null はアプリケーション用ではありません

これはコンテキストエラーであり、Googleのドキュメントなどに間違って書かれていることは知っています...しかし、通知を受け取るたびにダイアログを表示する方法は何ですか?

4

1 に答える 1

1

ダイアログを使用する代わりに、アクティビティを作成し、そのテーマをTheme.dialogまたはその子のいずれかに設定し、onMessageメソッドからアクティビティを開始します。

そうすれば、あなたの活動は対話の目的を果たし、問題は解決します

于 2013-10-28T14:20:19.893 に答える