恢复后有时会在 Nativescript-Vue 上显示主屏幕

Posted

技术标签:

【中文标题】恢复后有时会在 Nativescript-Vue 上显示主屏幕【英文标题】:After resume sometimes show the Home Screen on Nativescript-Vue 【发布时间】:2019-07-15 19:51:26 【问题描述】:

我的应用程序和他的导航有问题。

我的应用有四个屏幕,但有时当点击第二个屏幕(或任何其他屏幕)中的 android 主页按钮并在恢复应用后,这会显示主屏幕而不是最后一个屏幕,有什么想法可以解决这个问题吗?

更新: 有时在恢复应用程序后,这会显示正确的屏幕(最后显示)但我不知道这是怎么发生的(它是相同的源代码),我在许多版本的 android 模拟器(4.4、5.0、7.0 和 8.0 )。这可能是一个错误吗?

屏幕录制: https://i.imgur.com/VhWFhWU.gifv

代码: https://play.nativescript.org/?template=play-vue&id=wKkYCe&v=2

谢谢

【问题讨论】:

【参考方案1】:

如果您在应用程序中使用单帧,这应该很容易。您可以监听活动的恢复事件并调用 $navigateBack 并引用返回堆栈中的第一项。

       if (application.android) 

 application.android.on(application.AndroidApplication.activityResumedEvent,
                () => 
                    const backStack = frame.topmost().backStack[0];
                    if (backStack) 
                        setTimeout(() => 
                            this.$navigateBack(, backStack);
                        , 0);
                    
                , this);
        

Playground Sample

【讨论】:

谢谢,这很奇怪,因为有时使用相同的代码可以正常工作。 抱歉,我没抓住重点。什么似乎是有线的,它有时会坏吗?这就是你的意思? 如果没有您的代码,有时当应用程序恢复显示正确的屏幕但很难重现时。如果我在恢复正确屏幕时使用您的代码,此代码会改变屏幕吗? 是的,我想这就是您所要求的。您的问题是,恢复后始终显示主屏幕。当您恢复到您的应用程序时,上面的代码会返回到您的第一个组件。如果这不是您所期望的,请更新您的问题并提供更多详细信息。 其实我以为你在要求类似的东西,当你恢复时导航到主屏幕。但看起来这是你的问题,我不确定这是怎么发生的。我也没有在同一个 Playground 上复制它。我能想到的唯一可能的原因是,要么你有一些正在运行的清理应用程序,它一旦进入后台就会杀死你的应用程序,或者有一个设置你的开发人员选项来销毁活动,可能是启用了。

以上是关于恢复后有时会在 Nativescript-Vue 上显示主屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript-Vue 问题与平移元素

Nativescript-Vue 超时后关闭模式

DetachCurrentThread有时会在NDK中崩溃

点击按钮后如何将ListView向下滚动到底部(例如使用scrollToIndex)? NativeScript-Vue

(POSIX)操作系统是不是会在进程崩溃后恢复资源?

U盘删除的文件恢复后打不开怎么办