我有我的Android应用程序,我怀疑另一个应用程序何时运行,杀死我的所有线程,这对我来说造成很多问题。
有一些问题:
1-另一个应用程序可以做到吗?我的意思是,当应用程序在屏幕上运行时,可以杀死在后台运行的另一个线程?
2-如果发生这种情况,我能做些什么来防止这种情况发生吗?或者检测是否真的发生了(杀死线程)?
谢谢!
PS:抱歉我的英文不好
答案 0 :(得分:0)
Rodrigo,因为您通过电子邮件告诉我您的申请未包含在服务中。这是你应该开始的第一个地方。
将您的代码包裹在Service中(这将确保如果系统资源不足,则不会首先被杀死)
但是仍然使用服务中的其他线程(这样你的主线程就不会被阻止)。
向系统声明您的服务位于前台(即使它在后台)。
前台服务是一种被认为是某种东西的服务 用户积极地意识到并因此不是系统的候选者 在内存不足时杀死。前台服务必须提供 状态栏的通知,位于“正在进行”下 标题,这意味着除非通知不能被驳回 该服务要么停止要么从前台删除。
例如,从服务播放音乐的音乐播放器应该是 设置为在前台运行,因为用户明确知道 它的运作。状态栏中的通知可能表示 当前歌曲并允许用户发起与之交互的活动 音乐播放器。
尽可能多地将功能放在云端。例如,代替您的应用程序每10秒轮询一次Web服务器以获取传入的客户请求。让GCM(谷歌云消息传递)ping手机,或让网站向您的应用发送短信,告诉它从服务器获取新请求。由于您的应用将使用广播接收器,因此它不需要在后台运行。
学习使用Alarm Manager。如果由于某种原因它会被杀死,这将重新启动您的服务。
尽量避免在汽车不移动时,或在司机休息时,午餐时或在手机插入车载充电器时仅发送更新时尽可能多地发送GPS更新。等等。有一些框架旨在最小化gps天线和数据计划的使用。尽可能多地利用这些。
如果数据连接不可靠。在到达连接更好的地方之前,请避免使用gps天线。使用gps需要很大的力量。它甚至可以让你的手机真的很热。无论你做什么,尽量避免为gps天线供电。从技术上讲,您甚至可以发送短信来更新汽车坐标上的服务器(假设客户有无限的短信/短信计划)。