请教保持非主activity在后台运行的实现思路?
我的需求:有个非主activity(里面有3个fragment),固定间隔时间获取经纬度坐标,与服务器交互数据,需要在点击home键后或者锁屏后,能继续运行,不被系统回收,用户点击返回应用程序后,继续保留原activity的状态与数据。
比如,蜻蜓fm app,在收听某个节目时,即使home键再锁屏,无论多久后,都能继续收听,返回应用后,就是原来的状态,进度条照样前进,没感觉到有重新加载恢复数据的迹象。
onSaveInstanceState onRestoreInstanceState 这些我懂,对数据多的情况,很不适用。
我试过了 wakelock 锁,也试过在 manifest 里对该非主activity 加了
<activity android:name=".xxxxxActivity" android:screenOrientation="portrait" android:alwaysRetainTaskState="true" android:launchMode="singleTask"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" />
在启动这个非主activity前加了 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 全部没有效果,在home键 锁屏后不久,activity被回收了,如果不home键不锁屏,才能一直运行下去,没有问题。
请教有什么办法让非主activity 在home键锁屏后,都能继续运行,重回应用时,完美显示,没有重新加载的迹象?分数少了,请见谅。