pendingintent有时不工作

时间:2013-05-10 08:45:10

标签: android android-layout android-intent android-widget

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

我不知道为什么会这样。

1 个答案:

答案 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);