我有一个应用程序,其中包含一个活动。每当我的应用程序从它的图标启动时,我都需要显示一个品牌/启动画面。我的客户非常强调这一点,启动应用程序时必须始终有一个闪屏。 (请注意,它也有法律通知,显然律师参与了这一决定)
当然,当方向发生变化时,或者在拨打电话后返回应用程序时,启动画面应该不(应用程序可以启动电话拨号器,BTW)
我知道应用程序在启动时并不总是真正“启动”,因为它最近可能已经运行并且活动保持活跃状态。然而,我的客户并不关心这种技术性,如果你从一个图标启动它,你正在“启动”应用程序,它必须显示启动画面。
有什么好的策略吗?我不知道如何区分开展活动的各种方式。
答案 0 :(得分:2)
创建一个将显示启动画面的活动,为其提供单击启动器时要启动的intent过滤器:
<activity android:name="ShowMySplashScreen" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" >
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
在屏幕显示多少秒后,请在活动上调用finish()
并启动实际的应用流程。
答案 1 :(得分:0)
据我了解您的问题,我认为您需要使用onStart () and onResume ()
(在按HOME
后返回活动时显示启动画面)
关于启动视图,我建议使用ImageView
(如果您想将图像显示为启动)并将其可见性设置为GONE
&amp;然后当您的Actvity恢复或开始时,使图像视图显示FILL_PARENT
&安培; (我想)你完成了!
答案 2 :(得分:0)
为了帮助您了解活动的启动方式,我在开发者指南中找到了以下图片:
如您所见,您可能希望覆盖onReseume()
函数以显示作为启动画面的意图/活动
例如:
public void onResume()
{
startActivity(new Intent(this, SplashScreen.class));
}
其中SplashScreen是一个扩展活动的类
然后正如扎拉所说:
在屏幕显示多少秒后,请拨打
finish()
活动并启动实际的应用程序流程。
或做某事。让他们按下屏幕:P
答案 3 :(得分:0)
你应该告诉你的客户这是一个非常糟糕的主意。但是,如果你真的需要破解这个,你上面的建议都不会有效。我唯一能想到的是每次任何活动暂停时都会在首选项中保存时间戳(onPause),然后每当任何活动恢复时(onResume)都会检查该值,如果它太久以前重定向到启动画面活动。 然而,这将是可怕的。
建议客户创建一个标准的启动画面,其中有一个对话框,上面写着“是啊..我已经看过这个......”并点击继续。当他们按下您的点击时,您确认无需再次显示启动...
答案 4 :(得分:0)
查看this
它是在任何活动之前创建的。您可以在那里设置某种just_started标志,在您的活动的onCreate()
方法中进行检查并采取相应的行动。