使用配置活动将小部件添加到屏幕

时间:2015-12-19 05:23:26

标签: android android-widget

目前,在用户将窗口小部件拖放到其屏幕上之后,我的配置活动就会启动。现在要将Widget实际添加到屏幕上,在我执行的配置活动中:

Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
finish();

基本上,我不确定如何在不调用finish();的情况下将setResult()中的RESULT_OK结果集返回给调用者。目前,这是在活动onCreate()中,因此活动一启动就会关闭。我不想要添加" Ok"按钮,供用户按,然后调用finish(),以便返回结果。

我需要将小部件添加到屏幕中,无论用户将其拖放到屏幕上后是什么。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您不必立即致电finish(),您可以在onCreate()中设置结果,然后让活动继续运行。我不确定会带来什么好处,但它完全没问题。

修改

由于您无法按下主页按钮,并且无法阻止用户切换应用,因此我提供的其他建议如下:

  1. 请勿在{{1​​}}中使用配置活动。而是将窗口小部件放在屏幕上,使用一些默认配置,并让用户单击它以启动活动以修改配置。
  2. <appqidget-provider>中致电finish()。如果用户导航或按Home,您应该获得onStop()回调,您只需关闭活动即可。用户可能会尝试回到它,所以也许值得在清单中使用onStop()来进行该活动。