我想构建一个搜索小部件。单击小部件应在我的应用程序中打开搜索活动。这是来自小部件提供商的 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。当通过 SearchManager 调用 SearchActivity(这是应用程序的默认 SearchManager 处理程序)时,它会获得有效的操作为android.intent.action.SEARCH
.
我对未决意图做错了什么?