Android 来自widget提供者的Post-Intent操作
我想去。单击小部件应打开我的应用程序内的搜索活动。以下是小部件提供程序的onUpdate()中的代码Android 来自widget提供者的Post-Intent操作,android,android-widget,android-pendingintent,android-searchmanager,Android,Android Widget,Android Pendingintent,Android Searchmanager,我想去。单击小部件应打开我的应用程序内的搜索活动。以下是小部件提供程序的onUpdate()中的代码 public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]appWidgetIds) { /*因为这个小部件可能有很多小部件实例。我们得到一个数组*/ for(int i=0;i
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]appWidgetIds)
{
/*因为这个小部件可能有很多小部件实例。我们得到一个数组*/
for(int i=0;i
在我的SearchActivity.onCreate()中,我正在检查intent操作作为intent.action\u SEARCH.equals(this.getIntent().getAction())
。但是,当通过小部件提供程序使用PendingEvent发布意图时,this.getIntent().getAction()
返回null。当通过SearchManager调用SearchActivity(应用程序的默认SearchManager处理程序)时,它将获得有效的操作,即android.intent.action.SEARCH
我在等待的意图上做错了什么?我得到了答案。
因为它表明操作已发布在SearchActivity.OnReceive()中。此外,该操作用于文本框(不用于活动),因此SearchActivity.getIntent().getAction()
为空
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);
}
}