3

我有一个具有文本视图的主屏幕小部件。当我单击文本视图时,我的主要活动打开。我在文本视图上设置了 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 再次正常工作,文本视图变得可点击。

我不知道为什么会这样。

4

1 回答 1

0

与其在一个 Intent 中设置太多元素,您是否曾尝试将它们与一个布局组合在一起,然后在该布局上设置 Intent?

另外,建议在 Intent 中添加标志,我通常使用

Intent.FLAG_ACTIVITY_CLEAR_TASK

FLAG_ACTIVITY_NEW_TASK

并且还在待处理的 Intent 中设置

setOnClickPendingIntent(R.id.contentw3,0, pendingIntent, 
                        PendingItent.FLAG_UPDATE_CURRENT);
于 2014-02-27T11:40:00.187 回答