每当我收到推送通知,并且我的应用程序可见(onStart()/ onStop()对)时,我都试图从GCMIntentService类向用户显示一个对话框。
(我还没有切换到下一个GCM,实际上我做了,但是遇到了问题,所以我又切换回了旧的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文档等中写错了...
但是,每当收到通知时显示对话框的方式是什么?
最佳答案
代替使用对话框,进行一个活动并将其主题设置为Theme.dialog
或其任何子级,然后从onMessage
方法开始该活动。
这样,您的活动将达到对话的目的,问题将消失
关于android - 我收到推送通知时无法创建对话框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19637146/