GithubHelp home page GithubHelp logo

xingda920813 / hellodaemon Goto Github PK

View Code? Open in Web Editor NEW
2.3K 2.3K 442.0 664 KB

Android 服务保活/常驻 (Android service daemon using JobScheduler)

License: MIT License

Java 100.00%
alarmmanager android android-service-daemon job-scheduler whitelist

hellodaemon's People

Contributors

qiubaiying avatar xingda920813 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hellodaemon's Issues

引入错误

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

博主 我的服务启动不起来

startWork方法没执行,但是在正在运行的列表里面可以看到我写的Service,清单文件也注册了,Application里面也写了初始化的方法

博主项目里的rxjava2和rxjava1.1x版本编译时候冲突.求教方法.

博主项目自带的依赖compile 'io.reactivex.rxjava2:rxjava:2.+'
而我自己的项目里依赖了:
compile 'io.reactivex:rxjava:1.1.6'
compile 'io.reactivex:rxandroid:1.2.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

编译时候,就会提示有2个不同版本的rxjava,导致便以失败.求教怎么解决呢.

能弹出doze模式相应对话框,点确定无反应。

能弹出doze模式相应对话框,点确定无反应。测试机型 华为畅享7 plus ,一加三 ,系统均为7.0,看日志无报错。 还是华为畅享7 plus 同时弹出三个对话框 type: 98 ,99 ,100,点确定未跳转前已经看到了第二个对话框。感觉用户体验不是很好,有没有办法改善下。

后台定时任务会运行越来越慢

测试机:小米Note4x,VIVO

具体:每隔一分钟运行一次任务,但是越往后,任务运行越慢。

代码:
StartWork内代码, frequency为60s

sDisposable = Flowable.interval(frequency, TimeUnit.SECONDS)
// 取消任务时取消定时唤醒
.doOnTerminate(new Action() {

                            @Override
                            public void run() throws Exception {
                                cancelJobAlarmSub();
                            }

                        }).subscribe(new Consumer<Long>() {

                            @Override
                            public void accept(Long count) throws Exception {
                                        com.tzunicom.soft.logger.Logger.addRecordToLog(String.format("每 %s 秒上传一次位置... count = %s", frequency, count));
                                        locationService.startLocation();
                            }

                        });

测试手机 华为mate7 6.0系统

1,运行app,点击按钮启动服务,不返回到后台,1个小时没发现WorkService被杀死

2,运行app,点击按钮启动服务,返回到后台,主进程被杀死,WorkService所在的work进程没有被杀 死,但是运行手机自带清理软件或者360清理软件之后,WorkService死掉没有重启

3,运行app,点击按钮启动服务,手机锁屏一段时间进入睡眠。虽然设置了闹钟15分钟唤醒。测试经过了半小时都无法唤醒!

在android5.0.1上运行你的Demo,先停止服务,后开启不成功

在android5.0.1上运行你的Demo,先停止服务,后开启不成功.日志如下:

07-06 11:50:56.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 0
07-06 11:50:59.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 1
07-06 11:51:02.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 2
07-06 11:51:05.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 3
07-06 11:51:08.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 4
07-06 11:51:11.132 17004-17058/com.xdandroid.sample I/System.out: 每 3 秒采集一次数据... count = 5
07-06 11:51:11.962 17004-17031/com.xdandroid.sample D/GraphicBuffer: register, handle(0xb7956d60) (w:600 h:1024 s:608 f:0x1 u:0x000f02)
07-06 11:51:11.979 17004-17031/com.xdandroid.sample D/GraphicBuffer: register, handle(0xb79251b8) (w:600 h:1024 s:608 f:0x1 u:0x000f02)
07-06 11:51:12.054 17004-17004/com.xdandroid.sample V/SettingsInterface: invalidate [system]: current 28 != cached 0
07-06 11:51:12.056 17004-17004/com.xdandroid.sample D/ActivityThread: hoder:android.app.IActivityManager$ContentProviderHolder@295fd50,provider,holder.Provider:android.content.ContentProviderProxy@8eb6b49
07-06 11:51:12.101 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.108 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100829640061
07-06 11:51:12.117 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.124 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100846370499
07-06 11:51:12.131 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.141 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100863111106
07-06 11:51:12.148 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.158 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100879853715
07-06 11:51:12.165 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.174 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100896601164
07-06 11:51:12.184 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.191 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100913339958
07-06 11:51:12.201 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.208 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100930080389
07-06 11:51:12.220 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.224 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100946825854
07-06 11:51:12.235 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.241 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100963567997
07-06 11:51:12.256 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:51:12.258 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10100980314053
07-06 11:52:01.717 17004-17004/com.xdandroid.sample V/SettingsInterface: from settings cache , name = sound_effects_enabled , value = 0
07-06 11:52:01.719 17004-17004/com.xdandroid.sample D/ActivityThread: SVC-Calling onStartCommand: com.xdandroid.sample.TraceServiceImpl@169b9c4a, flags=0, startId=3
07-06 11:52:01.733 17004-17004/com.xdandroid.sample D/ActivityThread: SVC-SERVICE_ARGS handled : 0 / ServiceArgsData{token=android.os.BinderProxy@3dce3db5 startId=3 args=Intent { cmp=com.xdandroid.sample/.TraceServiceImpl }}
07-06 11:52:01.852 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.858 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150580198276
07-06 11:52:01.870 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.874 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150596949045
07-06 11:52:01.887 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.891 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150613694692
07-06 11:52:01.907 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.926 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150647168728
07-06 11:52:01.946 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.960 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150680653873
07-06 11:52:01.970 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.975 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150697395891
07-06 11:52:01.986 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:01.992 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150714152333
07-06 11:52:02.005 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:02.008 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150730877491
07-06 11:52:02.019 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync
07-06 11:52:02.025 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 latestVsyncEvent 10150747622324
07-06 11:52:02.035 17004-17031/com.xdandroid.sample D/OpenGLRenderer: DisplayEventReceiver 0xb7879120 requestNextVsync

加入“多任务界面锁定”

发现了 钉钉 的引导 设置 接口:
小米的
https://tms.dingtalk.com/markets/dingtalk/android/msg/help?brand=Xiaomi&model=Redmi+Note+4&rom_version=V8&os_version=6.0&locale=zh_CN

华为的
https://tms.dingtalk.com/markets/dingtalk/android/msg/help?brand=Huawei&model=HUAWEI+MT7-TL10&rom_version=V8&os_version=6.0&locale=zh_CN

在 多任务界面 锁定APP后,以后 App在打开状态下,统一清理任务,该App不会被清理掉。(单独划掉清理该App,会被清理掉)
那么是否需要 加入这个呢?

miui8 白名单锁屏状态下服务没有定时启动

集成时候在使用的时候发现,手机锁屏之后即是加入神隐模式的无限制,自动启动和后台清理白名单的情况下服务虽然继续在运行但是回调却不再执行了。
miui版本8.5.30
安卓版本7
定时间隔设置为3*60秒

08-09 16:31:10.509 31729-31761/com.xdandroid.sample I/System.out: 每 3 *60秒采集一次数据... count = 0
08-09 16:39:30.797 31729-31761/com.xdandroid.sample I/System.out: 每 3 *60秒采集一次数据... count = 1
08-09 16:42:30.797 31729-31761/com.xdandroid.sample I/System.out: 每 3 *60秒采集一次数据... count = 2
08-09 16:51:17.726 31729-31761/com.xdandroid.sample I/System.out: 每 3 *60秒采集一次数据... count = 3
31-39 42-51 之间没有执行任务
这个是什么问题导致的,麻烦能不能解答下,谢谢。

在小米4和红米note1上有问题

小米4,android4.4系统,杀了多次服务虽然会重启,但最后一次虽然服务在进程上看是启动了,但方法不知道为什么卡住了,不会调用
红米note1,android5.0,删了之后直接服务挂掉了

你在逗我呢!

哪里有双服务互拉!!!!!明明是搞多了一个服务开启前台服务,为了不让用户看到弹出的通知栏

how to get ComponentName?

每个厂商的自启动页面的组件名称是如何获取的?
例如: com.letv.android.letvsafe , com.letv.android.letvsafe.AutobootManageActivity 这个名称是如何获取的。
letvIntent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
有相关的博客地址,参考么?

关于白名单设置

老哥,你是怎么兼容各个手机版本的省电管理的。

例如我有个魅族note5,用了
Intent mzKeeper = new Intent();
mzKeeper.setComponent(new ComponentName("com.meizu.safe","com.meizu.safe.powerui.PowerAppPermissionActivity"));
keepers.add(mzKeeper);

没有效果。

我想问下你是怎么知道省电管理的Activity全名的,这样下次有其他手机需要兼容的话,可以举一反三。

谢谢

请问要保活多个service的方案

请问有多个service需要保活,是每个service都单独保活,还是保活一个然后让被保活的去管理其他的呢?不知道每个service单独保活会不会增大开销呢?

Oppo 自启动管理ComponentName 问题

在实际的使用过程中发现oppo的手机并没有弹出相应的权限窗口,于是我重新获取了一下ComponentName,发现我用的手机名称为"com.color.safecenter",与代码中提供的名称不一致,添加如下代码后,在oppo A53手机上正常弹出了权限设置窗口。
Intent colorIntent = new Intent();
colorIntent.setComponent(new ComponentName("com.color.safecenter", "com.color.safecenter.permission.startup.StartupAppListActivity"));
INTENT_WRAPPER_LIST.add(new IntentWrapper(colorIntent, OPPO));

Doze模式的检测,为什么跳过了安卓M

是手误M敲成了N吗?

另外,我看摩拜单车在MIUI上的表现,直接转跳到了摩拜单车的神隐模式界面,而不是所有应用的神隐模式界面。在网上也找了资料,也看了MIUI设置的Manifest ,实在没找到,您可以找找看吗?这个作用还是挺大的。

还有,我希望whiteListMatters能有个返回值,表示遍历那些机型有没有匹配的。

谢谢

主服务无法启动和白名单弹窗

1.项目需要显示主服务的通知栏,在Activity关闭的时候需要关掉通知栏,使用stopForground(ture)关掉了通知栏,结果主服务下一次无法正常启动了(startWork()方法没走了),其实我真正的目的是想唤醒gps定位。
2.加入白名单的弹窗每一次都会弹,我选择了自启动和耗电管理了,下次还是会弹出来。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.