我正在实现一个与小部件相关的应用程序,我准备了一个小部件,它运行良好,当单击打开活动的视图以准备该小部件的设置时。
但我的要求是当点击主屏幕小部件时,我想直接打开活动,然后打开小部件。
从上图中单击自定义模拟时钟小部件时,在我的应用程序中打开第一个活动,然后我想显示小部件,因为从我的活动中我将为该小部件设置一些设置。我怎样才能先打开活动?
小部件在添加到主屏幕时可以调用一个特殊的活动。如果您想阻止创建小部件本身,该活动可以返回带有小部件 ID 的 SUCCESS 意图,并在活动的“onCreate”方法或 RESULT_CANCELED 中接收。
您只需android:configure
在 XML 的属性中添加配置活动类,并在 AndroidManifest 中的活动声明中appwidget-provider
添加意图过滤器。android.appwidget.action.APPWIDGET_CONFIGURE
它在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);
您可以从该活动中进行所有小部件设置。
另一方面,如果您想为所有小部件实例执行只需要发生一次的其他设置,您可以在onEnabled
您的 AppWidgetProvider 类的方法中进行,如http://developer.android.com/guide/中所述主题/appwidgets/index.html#AppWidgetProvider
您应该查看本教程:http ://android-er.blogspot.nl/2010/10/simple-home-screen-app-widget-with.html它完全符合您的要求。