我正在实现一个与小工具相关的应用程序,我准备了一个小部件,并且工作正常,并且单击打开活动的视图以准备该小部件的设置。
但我的要求是点击主屏幕小部件我想直接打开活动然后打开小部件。
从上面的图片中点击Custom Analog Clock小部件打开我的应用程序中的第一个Activity然后我想显示小部件,因为从我的活动我将为该小部件设置一些设置。我怎样才能先开展活动?
答案 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)