小编Jok*_*nas的帖子

将应用程序兼容性更新到 1.4.1 后 ProcessLifecycleOwner 无法工作

我正在调查一个奇怪的问题,我们将 更改androidx.appcompat:appcompat1.3.11.4.1突然我们的LifecycleObservers观察过程生命周期停止发出任何事件。

我也在使用"androidx.lifecycle:lifecycle-extensions:2.2.0",我知道这已经被弃用,但如果 appcompat 是,它可以完美地工作1.3.1

我已在清单中设置了正确的应用程序名称,我已根据文档的要求包含此提供程序。

        <provider
            android:name="androidx.startup.InitializationProvider"
            android:authorities="${applicationId}.androidx-startup"
            tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

初始化的示例,不起作用。该对象被注入到Application类中,并且生命周期观察器被添加,但从onStart未被onStop调用。

class AppLifecycle @Inject constructor(
    private val foregroundProxy: AppLifecycleProxy
) : LifecycleObserver {

    init {
        ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart() {
        foregroundProxy.onStarted()
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop() {
        foregroundProxy.onStopped()
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:根据 @EpicPandaForce 评论,将清单中的提供程序块更改为:

 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities=\"${applicationId}.androidx-startup"
    android:exported="false"
    tools:node=\"merge">
    <!-- If you are using androidx.startup to initialize other components -->
    <meta-data
        android:name="androidx.lifecycle.ProcessLifecycleInitializer"
        android:value="androidx.startup" …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat application-lifecycle android-lifecycle

17
推荐指数
3
解决办法
6423
查看次数

在三星上,Compose AlertDialog 始终采用全宽

在我的配备 One UI 5.0 和 Android 13 的三星 Galaxy S22+ 上,撰写 AlertDialog 始终占据全宽,在其他设备上它的工作方式与预期一致。

Compose版本是1.3.1

您只需从 Google Play 商店下载材料目录应用程序即可重现此内容。

我怀疑这很可能是 Compose 方面的一个错误,如果有快速修复,我将不胜感激。

@Composable
fun AlertDialogSample() {
    val openDialog = remember { mutableStateOf(true) }

    if (openDialog.value) {
        AlertDialog(
            onDismissRequest = {
                // Dismiss the dialog when the user clicks outside the dialog or on the back
                // button. If you want to disable that functionality, simply use an empty
                // onCloseRequest.
                openDialog.value = false
            },
            title = {
                Text(text = "Title") …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog android-jetpack-compose

10
推荐指数
2
解决办法
1335
查看次数