Android 如何在应用程序处于后台时显示启动画面?

How to show splash screen when app is in background in Android?

我的应用程序有启动画面(无法避免,因为它是出于品牌原因)。

我想屏蔽用户界面并在其处于后台时显示初始屏幕(就像银行应用程序那样)。

我是否应该为 MainActivity 中的视图覆盖 onPause() 和 onResume()?

清单:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main"
        android:theme="@style/AppTheme.NoActionBar"></activity>
</application>

飞溅Activity: onCreate()

setContentView(R.layout.splash_layout);
new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            /* Create an Intent that will start the Main-Activity. */

            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
            finish();
        }
    }, SPLASH_DISPLAY_LENGTH);
}

MainActivity(): 只显示带有文本和按钮的布局

onCreate():

setContentView(R.layout.example_view);

现在,当我的应用程序在后台时,当我按菜单按钮查看堆栈中的应用程序列表时,我应该看到启动视图(xml 文件)而不是默认行为,即 MainActivity布局。

我尝试的其中一件事是添加

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
                WindowManager.LayoutParams.FLAG_SECURE); 

当应用程序处于白屏背景时,它确实会屏蔽应用程序,但我试图在应用程序处于后台时显示启动视图。

我知道所有 iOS 银行应用程序都有此功能。

已编辑

如果您在后台看到 Twitter 应用程序(示例),我想用启动画面屏蔽应用程序视图。现在使用 FLAG_SECURE 帮助我用白屏遮盖屏幕,但我想显示 Splash 布局而不是白屏。

Can this be done on Android?

不直接,据我所知。

Should I overide onPause() and onResume() for the view in MainActivity?

可能不会。欢迎您在此处更改 UI:

  • 这些方法因其他原因被调用(例如,当用户在多 window 模式下点击另一个 window 时,当您启动另一个活动时)

  • 截取屏幕截图可能为时已晚