是否有任何解决方法可以直接从小部件上的按钮调用活动?就像一个漂亮的按钮来启动应用程序。
从文档和这里的一些答案来看,views.setOnClickPendingIntent 是唯一的方法,并且需要服务。但我不需要服务,因为我并没有真正更新小部件!
实际上,我最初的任务很简单。我想要一个调用活动的主屏幕上的图标,但我不希望该图标出现在应用程序抽屉中。我知道我可以在 app-drawer 中放置很多活动图标。
您不需要为此提供服务。
您应该只在 AppWidgetProvider 的 onUpdate 方法中设置 OnClickPendingIntent。
这里有一些链接显示了它是如何完成的,它们基本上是相同的,但有一些变化,你应该尝试一下:
如何从 Android 小部件上的按钮运行 Activity?
就像我说的,不需要服务。
这是我使用的示例代码:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
RemoteViews remoteViews=new RemoteViews(context.getPackageName(), R.layout.testwidget);
//Intent set with the activity you want to start
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.textView1, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}