Android如何在打开主屏幕小部件时打开Activity?

时间:2013-04-13 05:00:55

标签: android widget

我正在实现一个与小工具相关的应用程序,我准备了一个小部件,并且工作正常,并且单击打开活动的视图以准备该小部件的设置。

但我的要求是点击主屏幕小部件我想直接打开活动然后打开小部件。

从上面的图片中点击Custom Analog Clock小部件打开我的应用程序中的第一个Activity然后我想显示小部件,因为从我的活动我将为该小部件设置一些设置。我怎样才能先开展活动?

2 个答案:

答案 0 :(得分:6)

小部件在添加到主屏幕时可以调用特殊活动。如果要阻止创建窗口小部件本身,该活动可以返回活动的“onCreate”方法中的窗口小部件ID接收的SUCCESS意图,或者RESULT_CANCELED。

您只需要在android:configure XML的appwidget-provider属性中添加configure活动类,并在AndroidManifest的活动声明中添加一个带有android.appwidget.action.APPWIDGET_CONFIGURE的intent过滤器。它在http://developer.android.com/guide/topics/appwidgets/index.html#Configuring

中有详细说明

收到的意图有小部件ID:

public void onCreate(Bundle savedInstanceState) {
    ...
    int widgetID = getIntent().getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    ...
}

然后您可以使用setResult(RESULT_CANCELED);完成活动,也可以使用

确认小部件创建
    Intent resultValue = new Intent();
    resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
    setResult(RESULT_OK, resultValue);

您可以从该活动中完成所有窗口小部件设置。

另一方面,如果要执行其他只需要对所有窗口小部件实例执行一次的设置,则可以按照{{3}中的描述在AppWidgetProvider类的onEnabled方法中进行设置。 }

答案 1 :(得分:1)

您应该查看本教程:http://android-er.blogspot.nl/2010/10/simple-home-screen-app-widget-with.html它完全符合您的要求。