所以我已经看到了很多关于如何从Android小部件启动活动的解决方案,现在我的问题是,我是否需要在清单中声明要启动的活动?我有一个活动的布局,我有一个挂起意图的小部件提供程序,当我点击一个按钮时会触发,但它不会带我去活动。这是我的代码
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, WidgetActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
views.setOnClickPendingIntent(R.id.button1, pendingIntent);
// Tell the AppWidgetManager to perform an update on the current app widget
appWidgetManager.updateAppWidget(appWidgetId, views);
来自developer.android的相同代码,但我的按钮ID和我的活动名称......
答案 0 :(得分:0)
您需要在清单中定义您的活动。例如,
<activity android:name="org.achartengine.GraphicalActivity" />
你在logcat中看到任何错误吗?
网上有很多工作示例,你也可以查看我的开源应用程序,它有一个小部件和活动:
https://code.google.com/p/currentwidget/
尝试添加:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
创建意图后。