这是我的第一个应用小部件。我有一个问题。当我在设备上设置小部件时,它工作正常,但是,当我从市场上安装另一个应用程序时,它停止了。我按它,没有任何反应。
这是我的onUpdate
:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
SharedPreferences prefs = context.getSharedPreferences("prefs", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("appWidgetId", appWidgetId).commit();
Intent intent = new Intent();
intent.setAction(WidgetIntent.WIDGET_INTENT);
intent.setClassName(WidgetIntent.class.getPackage().getName(),
WidgetIntent.class.getName());
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context.getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
view.setOnClickPendingIntent(R.id.widget_button, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, view);
}
我正在另一个扩展的类中收看广播BroadcastReceiver
。
我看到一个答案说我也应该设置onClickPendingIntent on the onRecive
。但是,我试过了,它不起作用。也许我不知道该怎么做。
有人知道这里发生了什么吗?
谢谢!
更新:我刚刚注意到它在 android 2.3 上运行良好,但在 4.1 上停止,为什么会这样?4.1有什么区别让它停止?