我有一个主屏幕小部件,它有文本视图。当我单击文本视图时,我的主要活动将打开。我在文本视图上设置了PendingIntent。
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
views.setOnClickPendingIntent(R.id.contentw1, pendingIntent);
views.setOnClickPendingIntent(R.id.contentw2, pendingIntent);
views.setOnClickPendingIntent(R.id.contentw3, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, views);
updateWidget(context, appWidgetManager, appWidgetIds);
此代码工作正常。但有时当我点击文本视图时没有任何反应。小部件似乎被冻结了。我必须从我的主应用程序手动打开主要活动,然后PendingIntent再次正常工作,文本视图变为可点击。
我不知道为什么会这样。
答案 0 :(得分:0)
您是否曾尝试使用布局将它们组合在一起,而是在该布局上设置Intent,而不是将太多元素设置为一个Intent?
另外,建议为你的Intent添加标志,我通常使用
Intent.FLAG_ACTIVITY_CLEAR_TASK
和
FLAG_ACTIVITY_NEW_TASK
并且还设置了待处理的Intent
setOnClickPendingIntent(R.id.contentw3,0, pendingIntent,
PendingItent.FLAG_UPDATE_CURRENT);