如何防止自身服务被杀
因为我之前也在这个上面纠结过。
如360 QQ管家这些软件老是提供什么服务大
什么内存大然后把我们干掉。
现在就让大家如何防杀吧~
相信大家也在网上查过这些类似的吧?但是用了却没用(我不知道是不是这样);
第一:
@Deprecated public final void setForeground(boolean isForeground) { Log.w(TAG, "setForeground: ignoring old API call on " + getClass().getName()); }
该方法再后续版本中 ,未实现,就一空方法。因此调与没调没差。
而 由于在新的api中 有一
public final void startForeground(int id, Notification notification) { try { mActivityManager.setServiceForeground( new ComponentName(this, mClassName), mToken, id, notification, true); } catch (RemoteException ex) { } }
该方法才真正实现了foreground,所以在提升自己优先级的时候记得使用的是:startForeground
如:
private void setForeground() { Notification note = new Notification(0, null, System.currentTimeMillis()); note.flags |= Notification.FLAG_NO_CLEAR; startForeground(42, note); }
然后在服务里直接调用。
另外想分享的是另外个思路。
由于android
中可以通过android:process=""来指定进程名,在直接看360等软件杀的时候发现他对某些进程名不感冒。(不知道是不是有意的还是无意的)。
如:你把你的android:process="com.android.acore"
这种android的核心进程后,在他所列出要杀的名单中就不存在了 。即使在QQ管家里 上面标注的也是 “不推荐” 。
因此在对进程名方面 ,也是他们的一个BUG吧。
标签:
android 开发
, 服务被杀
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构