随笔 - 62  文章 - 0  评论 - 114  阅读 - 18万

如何防止自身服务被杀

因为我之前也在这个上面纠结过。

如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吧。

 

posted on   nuliniao  阅读(637)  评论(0编辑  收藏  举报
编辑推荐:
· .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语句:使用策略模式优化代码结构
< 2012年11月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示