gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:05:37 25 4
gpt4 key购买 nike

我正在实现一个与小部件相关的应用程序,我准备了一个小部件并且它运行良好,当单击打开 Activity 的 View 时为该小部件准备设置。

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

从上图中,当单击“自定义模拟时钟”小部件时,首先在我的应用程序中打开 Activity,然后我想显示该小部件,因为我将从我的 Activity 中为该小部件设置一些设置。如何先打开 Activity ?

最佳答案

当小部件被添加到主屏幕时,可以调用一个特殊的 Activity 。该 Activity 可以返回一个 SUCCESS Intent ,其中包含在 Activity 的“onCreate”方法中接收到的小部件 ID,或者如果您想阻止小部件本身的创建,则返回 RESULT_CANCELED。

您只需在 appwidget-provider XML 的 android:configure 属性中添加配置 Activity 类,并使用 android.appwidget 添加 Intent 过滤器.action.APPWIDGET_CONFIGURE 到您在 AndroidManifest 中的 Activity 声明。详见http://developer.android.com/guide/topics/appwidgets/index.html#Configuring

收到的 Intent 具有小部件 ID:

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

然后您可以使用 setResult(RESULT_CANCELED); 完成您的 Activity ,或者使用以下命令确认小部件的创建:

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

您可以从该 Activity 中进行所有小部件设置。

另一方面,如果您想执行其他只需要对所有小部件实例发生一次的设置,则可以在 AppWidgetProvider 类的 onEnabled 方法中进行,如 http://developer.android.com/guide/topics/appwidgets/index.html#AppWidgetProvider 中所述

关于Android打开主屏幕小部件时如何打开Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com