gpt4 book ai didi

android - 当应用程序从 WhatsApp 指纹屏幕等后台恢复时,每次打开启动画面

转载 作者:行者123 更新时间:2023-12-02 13:44:10 25 4
gpt4 key购买 nike

我想打开一个包含图像的屏幕,当我的应用程序恢复时,我想显示该屏幕。但问题是,当应用程序恢复时,它首先显示白屏。

如何每次都删除那个白屏并像WhatsApp屏幕一样打开?

这是我的应用程序类

class App : Application() {
private var context: Context? = null

override fun onCreate() {
super.onCreate()
context = this
registerActivityLifecycleCallbacks(AppLifecycleTracker())
}

companion object {
@SuppressLint("StaticFieldLeak")
private val instance: App? = null
fun getContext(): App? {
return instance
}
}

AppLifecycleTracker类(class)
class AppLifecycleTracker : Application.ActivityLifecycleCallbacks {
override fun onActivityPaused(activity: Activity) {
println("AppLifecycleTracker onActivityPaused")
}

override fun onActivityDestroyed(activity: Activity) {
println("AppLifecycleTracker onActivityDestroyed")
}

override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
println("AppLifecycleTracker onActivitySaveInstanceState")
}

override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
println("AppLifecycleTracker onActivityCreated")
}

override fun onActivityResumed(activity: Activity) {
println("AppLifecycleTracker onActivityResumed ${activity}")
}

private var numStarted = 0

override fun onActivityStarted(activity: Activity?) {
if (numStarted == 0) {
println("AppLifecycleTracker Foreground")
if (App.sinltonPojo?.launchData == 1) {
activity?.startActivity(Intent(activity.application, GifViewActivity::class.java))
activity?.overridePendingTransition(R.anim.enter, R.anim.exit)
}
}

numStarted++
}

override fun onActivityStopped(activity: Activity?) {
numStarted--
if (numStarted == 0) {
// app went to background
}
}
}

最佳答案

实际上有很多方法可以做到这一点。你可以考虑以下几点。

而不是从您的 Application 注册生命周期回调类,我想你可能有一个 SplashActivity作为启动器 Activity 并使用android:noHistory="true"在您的 AndroidManifest.xml对于所有其他 Activity 。

<activity
android:noHistory="true"
android:label="@string/app_name"
android:name=".activities.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:noHistory="true"
android:name=".activities.MainActivity" />

这样,您就可以拥有您的 SplashActivity每次从后台恢复时启动,您可以在 SplashActivity 中拥有转换到其他 Activity 的逻辑.

我希望这会有所帮助。

关于android - 当应用程序从 WhatsApp 指纹屏幕等后台恢复时,每次打开启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60664931/

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