如何避免在后台运行时启动应用程序时显示启动画面?

Posted

技术标签:

【中文标题】如何避免在后台运行时启动应用程序时显示启动画面?【英文标题】:How to avoid showing splash screen when app is launched while running in background? 【发布时间】:2020-08-26 13:49:40 【问题描述】:

仅在重新启动时显示启动画面,而不是在后台运行时启动应用程序时显示。这是splash活动的代码。

public class SplashActivity extends AppCompatActivity 

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_intro);

    Handler handler = new Handler();
    handler.postDelayed(() -> 
        Intent intent = new Intent(SplashActivity.this, MainActivity.class);
        startActivity(intent);
        finish();
    ,2000);


【问题讨论】:

这能回答你的问题吗? How to show splash screen when app is in background in android? 我之前已经看到过这个问题,这不是我想要的。 我建议反对这个代码,你只是无缘无故地给你的应用程序的启动时间增加了两秒的“滞后”,这可能会激怒你用户。我强烈推荐this 之类的东西。 【参考方案1】:

为显示初始屏幕创建新活动。然后在你的 AndroidManifest.xml 中移动

<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>

从 MainActivity 到您的启动活动标签

【讨论】:

谢谢,但是每次启动应用程序时都会显示启动画面,我想在后台运行时启动应用程序时避免启动画面。有什么解决办法吗?【参考方案2】:

通常,在后台运行的应用程序在调用到前台时会恢复到之前访问的活动/片段。如果您在启动画面恢复时遇到启动画面,则说明您没有正确管理活动生命周期。

【讨论】:

我添加了splash活动的代码。检查你是否发现有问题。谢谢

以上是关于如何避免在后台运行时启动应用程序时显示启动画面?的主要内容,如果未能解决你的问题,请参考以下文章

在后台加载 Webview 时显示启动画面

每次应用激活时显示启动画面

如何在后台运行android应用程序时显示通话屏幕

在应用启动时显示介绍视频

如何仅在初始启动时显示屏幕

UISplitViewController:如何强制在应用启动时显示主弹出框? (肖像)