gpt4 book ai didi

android - 带有 ViewModel 和 Lifecycleowner 的应用程序小部件

转载 作者:行者123 更新时间:2023-12-03 11:01:29 26 4
gpt4 key购买 nike

我在我的项目中使用MVVM。但是当我创建App Widget时,他不支持updateAppWidget()中的LifecycleOwner

var model: CurrencyViewModel
model = ViewModelProvider(this).get(CurrencyViewModel::class.java)

我有机会从 App Widget 访问模型吗?

最佳答案

这不是 ViewModelProvider 的用途。当小部件运行时, Activity 可能会与其 ViewModel 一起被销毁。 AppWidgetProvider 本身并没有真正的生命周期。

如果您想将应用程序中的数据获取到应用程序小部件中,您应该将其保存在 SharedPreferences 或数据库中。

/**
* Creates a {@link ViewModelProvider}, which retains ViewModels while a scope of given Activity
* is alive. More detailed explanation is in {@link ViewModel}.
* <p>
* It uses the {@link FragmentActivity#getDefaultViewModelProviderFactory() default factory}
* to instantiate new ViewModels.
*
* @param activity an activity, in whose scope ViewModels should be retained
* @return a ViewModelProvider instance
* @deprecated Use the 'by viewModels()' Kotlin property delegate or
* {@link ViewModelProvider#ViewModelProvider(ViewModelStoreOwner)},
* passing in the activity.
*/
@Deprecated
@NonNull
@MainThread
public static ViewModelProvider of(@NonNull FragmentActivity activity) {
return new ViewModelProvider(activity);
}

关于android - 带有 ViewModel 和 Lifecycleowner 的应用程序小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61330742/

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