我开发了一个应用程序(称为即时按钮),该应用程序具有小部件功能。此小部件将 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 阻止我的小部件工作的东西吗?
问候。