android__进程保活最新适配

    “安卓手机为什么老是这么卡”,

     “安卓手机高配置的低能儿”

作为一个安卓开发工程师,不知道听到别人这么说安卓的时候,你怎么感想。

之前遇到个问题,app在后台杀死后,用户进行暖启动,用户会直接进入之前浏览过的页面。这时公共bean的数据是没有的,但是每次后台请求数据时,是需要各种请求头的,这时就会出错。当时,只有一年工作经验的我第一想到的就是保活,而且当时觉得保活很帅,我想实战一下。但是,在和师傅商量后,否定了自己的想法。最后,我们在父类activity中每次判断公共bean中的一个字段是否为空实现的。后来,我想想其实保活对这个问题起不了多大作用,而且浪费系统资源。所以思路,交流,理解需求很重要。

为什么需要保活? 我们需要做一些实时的事情。比如:IM, 及时推送。

进程想要常驻后台,一般两类方法:保活和拉活。

保活: 白名单,1像素,前台服务保活

拉活: 账户同步拉活,JobScheduler,双进程,workManager

 

1像素:手机锁屏后,在屏幕上开一个1像素的界面,将app置为前台进程。因为国内手机厂商为了息屏后省电,会将部分后台进程杀死。

 一像素Activity:

public class KeepAct extends Activity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //直接用windo设置该acitivty为1像素
        Window window = getWindow();
        WindowManager.LayoutParams params = window.getAttributes();
        params.y = 0;
        params.x = 0;
        params.width = 1;
        params.height = 1;
        window.setAttributes(params);

        PowerManager powerManager = (PowerManager) this
                .getSystemService(Context.POWER_SERVICE);
        boolean ifOpen = powerManager.isScreenOn();
        if (ifOpen)
            finish();
        else
            KeepManager.getInstance().setmActivity(this);
    }

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值