问题标签 [android-architecture-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 有没有办法使用 Android 的 LifecycleObserver 来通知 onActivityResult?
我目前LifecycleObserver
用于通知事件,例如onStart
我的视图。这对于作为演示者或处理程序的组件非常有用,例如FacebookLoginHandler
一旦视图准备好就需要注册回调。但是,正如我所提到的,在某些情况下,我希望我的处理程序处理另一个活动的返回数据。
例子:
当我选择使用 Facebook 登录时,它会启动另一个活动,并将其返回到 view 的onActivityResult
方法。这让我FacebookLoginHandler
在视图中注入我的,只是为了将处理委托给它。我想用它LifecycleObserver
来获得通知onActivityResult
并避免将我的处理程序耦合到视图仅用于委派此事件。有没有办法做到这一点?
android - 如何为 ViewPager 中的每个页面创建一个 ViewModel?
我有一个ViewPager
,我在其中显示PetFragment
. 要创建 a 的新实例PetFragment
,我调用PetFragment.newInstance(petId)
.
我想为每个单独的ViewModel
实例petId
。但ViewModelProvider.Factory#create()
只接受 aClass<T>
作为参数。我如何实现这一目标?
android - Android Lifecycle ViewModel 在横向模式下锁定和解锁后不持久
我有一个非常简单的应用程序,其中包含一个虚拟Activity
和虚拟的 Android Lifecycle ViewModel ViewModel
。
片段活动
视图模型
视图模型工厂
显现
杀死 ViewModel 的步骤
- 将应用设置为横向模式
- 锁定屏幕
- 解锁屏幕并观察 ViewModel 消失了,Activity 被销毁并创建了两次。
日志输出
此行为与此处的发现一致,但是,我希望 arch 库能够处理这种情况,因为它非常标准,并且纵向模式下的锁定和解锁按预期工作。
在这种特殊情况下防止它ViewModel
被破坏有什么好主意吗?
在 Nexus 5X、API 27 上测试
编辑 1:在添加要保存的字符串onSaveInstanceState
并检查该字符串是否在所有活动破坏和创建中持续存在之后,我很确定这是库的错误。
编辑2:为什么这是一个问题?
问题 1:在横向锁定的情况下,捆绑包以某种方式从 Activity 244798673 正确路由到 Activity 218111434 02-20 16:30:33.241
,但是ViewModel
无法通过这一系列操作持续存在。这与捆绑行为不一致,因为我们在技术上仍然在同一个 Activity 范围内。
问题2:竖屏锁定和解锁的日志输出:
ViewModel
在纵向锁定和解锁中持续存在,这与横向场景不一致。
android - 为什么我会得到“多个 dex 文件定义 Landroid/support/v7/recyclerview/extensions/ListAdapter”
我得到了可怕的java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
错误。堆栈跟踪将根本原因显示为:
根本原因是什么?
android - Live Data Observer - 等待 RESUMED 状态
这是我的场景:
- 用户按下按钮
- 播放长慢动画
- 播放动画时 - 用户按下主页按钮并转到主屏幕
- 动画在后台完成并设置实时数据值
- 当应用程序恢复时,实时数据的观察者会收到通知并执行片段事务。
由于 Live Data 源代码中的以下行,通知在 onStart 期间发生:
static boolean isActiveState(State state) {return state.isAtLeast(STARTED);}
所以问题是我怎样才能让观察者等到至少恢复状态。当活动完全恢复时,需要进行片段事务。
android - Not able to get the LifeCycle ViewModel Class Using ViewModelProvider
I am trying to get the ViewModel Class for the specific fragment. But ViewModelProvider.of(this).get(UserListViewModel.class) does not work for me. Extending my Fragment from "android.support.v4.app.Fragment", but still it does not work. Here is the code
android - Android架构组件 - 启动相机意图时防止@OnLifecycleEvent
我实现了 2 个 LifecycleEvents Lifecycle.Event.ON_PAUSE 和 Lifecycle.Event.ON_START 现在每当我启动相机 Intent 时都会触发它们(这在某种程度上是合乎逻辑的)。有什么办法可以防止这种情况发生吗?
android - 尝试在空对象引用上调用虚拟方法“boolean androidx.work.State.isFinished()”
我正在尝试使用 codeLab 文档学习 WorkManager for Android。当我尝试测试 beginUniqueWork( Ensure Unique Work )的功能时,我的应用程序崩溃了
我只是通过多次选择图像来实现 beginUniqueWork 和测试应用程序。
我在 ViewModel 类的 aplyBlur() 中编写的代码是:
android - 过滤由视图模型的 LiveData 条目填充的回收器视图
我正在使用架构组件视图模型的 LiveData 来填充回收器视图,并希望添加一个 searchview 过滤器,但找不到任何解决方案。我尝试在适配器中使用可过滤接口,但它也不起作用,可能是因为视图模型不允许它改变。
我的适配器是-
}
搜索视图 OnQueryTextListener 为 -