今天在解决一个app提示音错乱的问题。当时的逻辑时,只有在mainactivity里才不会出现notification图标。而进入对话框,也会出现notification,则这种显示不合理。后来在测试的过程中,发现了一种情况:某个app在后台运行,当notification出现后,不点击notification进入该app,而是直接进入那个app,结果会出现两个activity,就会导致一些潜在问题。比如:退出的时候要退出两次等。后来知道这需要设置activity的启动模式。 以下来自网络:
当点击应用程序的图标时,会首先启动应用程序的主activity,即在AndroidManifest.xml中被 <action android:name="android.intent.action.MAIN" /> 标记的activity。 如果在一个包含fragment的activity和该fragment中都定义onactivityresult()函数,无论是使用哪种启动模式,其执行顺序都是先执行fragment中的onactivityresult()函数,再执行activity中的onactivityresult()函数。实验证明,只有使用了singleInstance启动的activity在执行startactivity之后会立即执行onactivityresult()函数;而其他三种启动模式启动的activity执行startactivity函数后,等再次回到这个activity才会执行onactivityresult()函数。 |
|