问题标签 [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.

0 投票
2 回答
1071 浏览

android - 将 Rxlifecycle 与 android-arch-lifecycle 组件一起使用是否有必要?

如果应用中使用了android-arch-lifecycle组件,是否需要使用Rxlifecycle?还是 Rxlifecycle 是多余的?或者如果我使用了 Rxlifecycle 和 RxJava,是否有必要使用 android-arch-lifecycle 组件?

0 投票
3 回答
547 浏览

android - 使用 Activity 和 Fragments 实现新的 Android 架构组件

目前我尝试用android提供的架构组件来实现一个应用程序。就仅在 UI 包中使用活动而言,这没有问题,但如果我在片段容器中实现由一个活动持有的多个片段,我会遇到麻烦。使用片段的数据请求的通信不应该从片段本身调用,而是从其活动调用。在这种情况下,只有活动将注册所需的视图模型,但每个片段的生命周期都没有得到正确处理......我如何在一个活动中使用多个片段从服务器请求数据并了解片段的生命周期,即使当活动正在调用视图模型?

0 投票
1 回答
140 浏览

android - 在新的 Android 生命周期架构组件中,是否可以在不进行注释处理的情况下观察生命周期事件?

注释处理/代码生成会显着增加构建时间并破坏增量构建。

Lifecycle.Event.ON_STOP我可以(被动地,也就是不通过手动转发事件)获得使用Android 生命周期架构组件的细粒度回调吗?

或者如果我选择不使用注释处理,这是否使用反射(慢)?

0 投票
1 回答
1405 浏览

java - Android 应用架构:在生命周期中实现用户权限

我有一个扩展 LiveData 类的 LocationListener。从 Android 6.0 开始,权限是在运行时请求的。现在,当我尝试实现 LiveData 类时,它需要权限检查onActive()功能。我必须在每个活动中为请求的权限和收到的结果制作样板代码。 有什么方法可以将此类 onRequestPermissionsResult()checkSelfPermission()功能移动到 LocationListener ?

LocationFragment.java

LastLocationListener.java

0 投票
0 回答
449 浏览

android - 如何使用 LifecycleRegistryOwner 使广播接收器仅在活动处于活动状态时保持活动状态

在某些情况下,从第三方库接收广播时遇到问题。

(仅在特定活动处于活动状态时才关心广播。)

一个用例是(当打开“不要让活动保持活动状态”时),在活动中它会从第三方库中午餐另一个活动。

当前活动将被暂时销毁,直到新活动完成(第一个活动将由操作系统重新创建)。

在第二个活动(一些第三方库)中,它进行广播。第一个活动注册了接收者,但在其 onDestroy() 中,接收者未注册,因此它错过了广播。

看到新的 android arch-lifecycle 可以支持类似案例的实时数据。不确定它是否可以在这里应用(问题可能出在活动上下文中)。

这就是我的想法:

在从 LifecycleRegistryOwner 扩展的活动中,它将观察活动的生命周期。据了解,活动可能会被操作系统销毁和重新创建(例如在配置更改时,不是真正销毁),但是 LifecycleRegistry 会告诉活动何时真正被销毁(而不是操作系统稍后会重新创建的活动)。

因此,在 LifecycleRegistryOwner 的帮助下,它可以在 LifecycleRegistryOwner 管理的生命周期中保持一些数据处于活动状态,以实现活动的真实生命周期。

问题是,如果有一个广播接收器只想在 LifecycleRegistryOwner 的生命周期中存活(真正的活动生命),是否可以在 lifeCycleObser 的 onStart() 中注册接收器并在它的 onDestroy( )? 问题是它需要这个活动来注册接收器。

感觉既然活动可以被销毁和重新创建,它不应该在 TheLifeCycleObserver 中保留一个活动实例来观察活动的真实生命周期。

但是,如果希望接收者始终接收广播(即使操作系统暂时破坏活动并很快重新创建它)并且如果这个特定活动被真正破坏而不注册,那么解决方案是什么?

下面列出了类片段:

TheLifeCycleObserver , TheBroadcastReceiver 和 MainActivity

}

0 投票
2 回答
1193 浏览

android - Android 架构组件:使用 LifecycleOwner 时获取 Activity 方法

在实现架构组件时,我面临这个问题

我如何想在这里获得像setContentView()AppCompatActivity 这样的基于 Activity 上下文的方法?

0 投票
3 回答
19059 浏览

java - AppCompatActivity 未实现 LifecycleOwner

我正在使用 Android 支持库 26.1.0。这些是 app 模块中的依赖项 -

但是当我尝试像下面这样使用 ViewModel 时 -

它显示错误,this错误消息是Wrong first argument type Found: packagename.BrowseActivity, required: android.arch.lifecycle.LifecycleOwner。(虽然支持库版本是 26.1+ 已经实现了 LifecycleOwner)

我也尝试实现LifecycleRegistryOwner我在这个示例中找到的,这也不起作用。请提出解决方案,如果我做错了什么,请告诉我。

编辑 1 - 这是 Activity 类

这是 ViewModel 类

}

0 投票
1 回答
2160 浏览

android - 带有分页库android的进度条

我希望在我的应用程序中使用新的架构组件“分页库” https://developer.android.com/topic/libraries/architecture/paging.html从服务器获取数据并显示在回收站视图中。

分页库是一个很好的补充,有助于管理分页内容。我检查了所有样品,它们工作正常。但是我的一个要求是,当我们滚动到 recyclerview 的末尾并且下一页开始加载(由 Paging Library 管理)时,我需要在底部显示一个进度条行。

我知道如何使用 recyclerview 滚动侦听器和 2 种视图类型来做到这一点。但我正在寻求的解决方案是如何使用“分页库”来做到这一点。它可以选择启用占位符,这不是我想要的。

对此的任何帮助都将受到高度赞赏。

0 投票
1 回答
2246 浏览

android - 奇怪的 LiveData 行为与 ObservableField

我对来自新 Android 架构组件的 LiveData 有疑问。我以前用过 ObservableField 但想试试 ACC。

当我在 Activity 的一种方法中通过 MutableLiveData.setValue 设置值 4 次时,我只得到一个 onChange 调用,而当我使用 ObservableField 时,它会按预期工作 - 它会触发 4 次回调。

为什么 LiveData 没有针对每个 setValue 都点击 onChange?

视图模型:

和活动:

堆栈跟踪:

0 投票
1 回答
229 浏览

android - 可见性的片段生命周期已更改

在我的应用程序中,我有两个片段,其中一个 (FragmentSlidingUp) 可以向上滑动并完全覆盖另一个 (FragmentContent)。我使用这个库来向上滑动https://github.com/umano/AndroidSlidingUpPanel。我遇到的问题是,当 FragmentSlidingUp 向上滑动并且 FragmentContent 不可见时,FragmentContent 中的 LiveData 观察者没有暂停。有没有办法在片段不可见时将片段生命周期状态设置为暂停,以便当片段再次可见时 LiveData 观察者将自动暂停和恢复?谢谢。