Android 安卓版本困境

Android 安卓版本困境,android,Android,在调用我的第一个活动时,它应该调用onResume。它在android版本2.2中调用相同的操作。但是当我在android 4.1中签入时,它调用onCreate方法调用splashscreen,因此看起来应用程序正在重新启动。我如何确保每个版本的android都调用onResume 谢谢如果系统在您的活动未使用时删除了它,它将收到一个onCreate,这是正常行为 您可以将启动屏幕作为单独活动的一部分,以避免出现问题。正如Henry所说,您不能保证onCreate不会再次被调用-您不负责该生命

在调用我的第一个活动时,它应该调用onResume。它在android版本2.2中调用相同的操作。但是当我在android 4.1中签入时,它调用onCreate方法调用splashscreen,因此看起来应用程序正在重新启动。我如何确保每个版本的android都调用onResume


谢谢

如果系统在您的活动未使用时删除了它,它将收到一个
onCreate
,这是正常行为


您可以将启动屏幕作为单独活动的一部分,以避免出现问题。

正如Henry所说,您不能保证onCreate不会再次被调用-您不负责该生命周期。如果系统决定在您的活动不在前台时删除它,那么当您返回到它时,它将被重新创建。如果您希望确保不再显示启动屏幕,则需要保存状态以表示已显示启动屏幕(例如,使用onSaveInstanceState)。另一方面,在android上,闪屏通常不是一个好主意,部分原因是这样的。最好将你的应用程序视为一个松散的活动集合,可以随意输入和重新输入,就像android系统基本上所做的那样。当你看到android上使用的闪屏时,很容易看到它们有点行为不端

如果您希望跟踪应用程序生命周期(初始屏幕可能对应于此),那么您可以对应用程序对象进行子类化,并在其中放置一个标志。然而,android可能会让你的应用程序运行数周,因此用户不一定经常看到闪屏

请记住,闪屏的真正目的应该是在长时间的加载过程中向用户展示一些美好的东西,而不是让他们看到你的品牌。如果使用onSaveInstanceState(通常也使用OnRetainonConfiguration Instance)的方法,那么显示初始屏幕的情况确实是那些需要重做加载过程的情况,因此这是正确的。但是,通常最好重新考虑设计,快速创建一个最小的UI,然后显示一些数据正在加载


最后,有人对这个问题进行了深入的探讨:

把你的简历放在这里()这不是正常的行为。。显示“回调”第一个活动的代码销毁后是调用第一个活动还是返回?returnIntent.putExtra(“failString”,复选框.toString());LogCreator lg=新的LogCreator();lg.writeBarcodeToFile(“FS-”+复选框.toString(),”);setResult(结果正常,返回意图);完成();如果第一个活动不知何故被停止,例如内存不足,onCreate会被调用,但为什么呢???这在我的突击队手机上是完全正常的,即安卓2.2这取决于其他情况,例如,如果许多其他应用程序正在运行,可用内存,…我不认为这是可能的原因。无论如何,谢谢你的投入。@Henry