【发布时间】:2011-02-11 23:22:33
【问题描述】:
我开发了一个应用程序(称为即时按钮),该应用程序具有小部件功能。这个小部件使用 PendingIntent 作为小部件的 onClick。
我的 PendingIntent 代码是这样的:
Intent active = new Intent(context, InstantWidget.class);
active.setAction(String.valueOf(appWidgetId));
active.putExtra("blabla", blabla); //Some data
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
actionPendingIntent.cancel();
actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
remoteViews.setOnClickPendingIntent(R.id.button, actionPendingIntent);
onReceive 获取意图并使用 MediaPlayer 类做一些事情来重现声音。
我收到一些用户的报告,说这些小部件会在一段时间后停止工作,并且通过一些研究我发现是因为任务杀手。似乎当你在TaskKiller中杀死应用程序时,PendingIntent会从内存中删除,所以当你点击小部件时,它不知道该怎么做。
有什么解决办法吗?我的代码是错误的还是什么,或者它是 PendingIntent 的默认行为?有什么东西可以用来避免 TaskKiller 阻止我的小部件工作吗??
您好。
【问题讨论】:
-
我没有任何任务杀手问题,但您的代码正是我需要弄清楚 PendingIntents 如何工作,然后让它们为我的小部件及其相关通知的多个实例工作。谢谢!
标签: android widget android-widget android-pendingintent