【问题标题】:Post Intent action from widget provider来自小部件提供者的发布意图操作
【发布时间】:2010-08-02 07:08:52
【问题描述】:

我想build a search widget。单击小部件应在我的应用程序中打开搜索活动。这是来自小部件提供程序的 onUpdate() 的代码。

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
    /* as their may be many widget instances for this widget. we get an array. */
    for(int i=0;i< appWidgetIds.length; i++)
    {
        Intent intent = new Intent(context, SearchActivity.class);
        intent.setAction("android.intent.action.SEARCH");
        PendingIntent pdIntent = PendingIntent.getActivity(context, 0, intent, 0);

        RemoteViews view = new RemoteViews(context.getPackageName(), myPackage.R.layout.search_appwidget); 
        view.setOnClickPendingIntent(R.id.search_widget_textbox,pdIntent );
        appWidgetManager.updateAppWidget(appWidgetIds[i], view);
    }

}

在我的 SearchActivity.onCreate() 中,我正在检查意图操作为 Intent.ACTION_SEARCH.equals( this.getIntent().getAction())。但是,当通过小部件提供程序使用 PendingIntent 发布意图时,this.getIntent().getAction() 返回 null。当 SearchActivity(这是应用程序的默认 SearchManager 处理程序)通过 SearchManager 调用时,它会获得有效的操作为 android.intent.action.SEARCH

未决意图我做错了什么?

【问题讨论】:

    标签: android android-widget android-pendingintent android-searchmanager


    【解决方案1】:

    我得到了答案here。 因为它表明该操作已发布在 SearchActivity.OnReceive() 中。该操作也适用于 text_box(不适用于活动),因此 SearchActivity.getIntent().getAction() 为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2021-01-22
      • 2021-08-28
      • 2020-05-21
      • 2021-02-20
      • 2021-11-13
      相关资源
      最近更新 更多