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 布局而不是白屏。
- 如果您在 iOS 设备上看到下图 - DISCOVER 应用程序(示例)用启动画面屏蔽应用程序,可以在 Android[=55 上完成吗=]?
Can this be done on Android?
不直接,据我所知。
Should I overide onPause() and onResume() for the view in MainActivity?
可能不会。欢迎您在此处更改 UI:
这些方法因其他原因被调用(例如,当用户在多 window 模式下点击另一个 window 时,当您启动另一个活动时)
截取屏幕截图可能为时已晚
我的应用程序有启动画面(无法避免,因为它是出于品牌原因)。
我想屏蔽用户界面并在其处于后台时显示初始屏幕(就像银行应用程序那样)。
我是否应该为 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 布局而不是白屏。
- 如果您在 iOS 设备上看到下图 - DISCOVER 应用程序(示例)用启动画面屏蔽应用程序,可以在 Android[=55 上完成吗=]?
Can this be done on Android?
不直接,据我所知。
Should I overide onPause() and onResume() for the view in MainActivity?
可能不会。欢迎您在此处更改 UI:
这些方法因其他原因被调用(例如,当用户在多 window 模式下点击另一个 window 时,当您启动另一个活动时)
截取屏幕截图可能为时已晚