从小部件启动活动

时间:2013-06-14 08:20:45

标签: android android-intent widget

所以我已经看到了很多关于如何从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和我的活动名称......

1 个答案:

答案 0 :(得分:0)

您需要在清单中定义您的活动。例如,

<activity android:name="org.achartengine.GraphicalActivity" />

你在logcat中看到任何错误吗?

网上有很多工作示例,你也可以查看我的开源应用程序,它有一个小部件和活动:

https://code.google.com/p/currentwidget/

尝试添加:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
创建意图后