请教保持非主activity在后台运行的实现思路?

mickyo 2020-05-02 07:32:32
我的需求:有个非主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键锁屏后,都能继续运行,重回应用时,完美显示,没有重新加载的迹象?分数少了,请见谅。
...全文
531 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickyo 2020-05-12
  • 打赏
  • 举报
回复
亲试过几种保活的方法,service,1像素,循环播放无声音频等等,然并卵,不知道workmanager是否能保活,看介绍,并不能保证及时运行,循环任务时间不能少于15分钟,据网友测试,实效与系统相关,在国内真实设备上效果不好,有无懂的大佬指点下
mickyo 2020-05-09
  • 打赏
  • 举报
回复
了解下保活,门道真多,有时还不是技术的问题!
剑笑了 2020-05-09
  • 打赏
  • 举报
回复
这种需求很明显应该用Service实现啊!系统回收事有优先级的,不可见不可交互的activity很容易被回收啊。
mickyo 2020-05-08
  • 打赏
  • 举报
回复
百度了保活的几种方法,请教大佬是使用何种方式的保活,比较靠谱
bdmh 2020-05-07
  • 打赏
  • 举报
回复
你这属于被系统回收了,估计进程都不干掉了,所以你要做的是保活
mickyo 2020-05-06
  • 打赏
  • 举报
回复
有没做过的指点下
mickyo 2020-05-03
  • 打赏
  • 举报
回复
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(activity,xxxxActivity.class);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

试过了,也没用

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧