如何避免在后台运行时启动应用程序时显示启动画面?
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活动的代码。检查你是否发现有问题。谢谢以上是关于如何避免在后台运行时启动应用程序时显示启动画面?的主要内容,如果未能解决你的问题,请参考以下文章