xingda920813 / hellodaemon Goto Github PK
View Code? Open in Web Editor NEWAndroid 服务保活/常驻 (Android service daemon using JobScheduler)
License: MIT License
Android 服务保活/常驻 (Android service daemon using JobScheduler)
License: MIT License
监听8种广播为啥要用两个receiver呢
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
samsung上如何跳转到unmonitor apps ?
是不是对于强制停止没有办法的呢
startWork方法没执行,但是在正在运行的列表里面可以看到我写的Service,清单文件也注册了,Application里面也写了初始化的方法
测试手机 :魅族4Pro
系统:5.1.1
版本号:Flyme 5.1.11.1A
博主项目自带的依赖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模式相应对话框,点确定无反应。测试机型 华为畅享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(); } });
1,运行app,点击按钮启动服务,不返回到后台,1个小时没发现WorkService被杀死
2,运行app,点击按钮启动服务,返回到后台,主进程被杀死,WorkService所在的work进程没有被杀 死,但是运行手机自带清理软件或者360清理软件之后,WorkService死掉没有重启
3,运行app,点击按钮启动服务,手机锁屏一段时间进入睡眠。虽然设置了闹钟15分钟唤醒。测试经过了半小时都无法唤醒!
在OPPO,VIVO Android5.0+上会导致系统崩溃的,很糟糕啊
com.android.server.controllers.JobStatus.getUid()' on a null object reference;
在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
编译时没有问题,运行时 会发现很多类找不到
java.lang.NoClassDefFoundError
具体应该是这个库导致 Flowable
发现了 钉钉 的引导 设置 接口:
小米的
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
在 多任务界面 锁定APP后,以后 App在打开状态下,统一清理任务,该App不会被清理掉。(单独划掉清理该App,会被清理掉)
那么是否需要 加入这个呢?
public static void stopService() {
//我们现在不再需要服务运行了, 将标志位置为 true
sShouldStopService = true;
//取消对任务的订阅
if (sDisposable != null) sDisposable.dispose();
//取消 Job / Alarm / Subscription
cancelJobAlarmSub();
}
这样也是无效的,小米5s 系统 6.0
启动服务开始的时候为什么 startWork 会连续执行3次
集成时候在使用的时候发现,手机锁屏之后即是加入神隐模式的无限制,自动启动和后台清理白名单的情况下服务虽然继续在运行但是回调却不再执行了。
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 之间没有执行任务
这个是什么问题导致的,麻烦能不能解答下,谢谢。
(1)Android 7.0 和 8.0 都正常吗?
(2)定时的意思是 每次到时间,重新启动服务吗?
如题,手机一直在service里面接收数据.收到指定数据讲会播放声音. 在手机设置了锁屏密码时,是可以成功播放的.手机没有设置锁屏密码时 无法播放.
java.lang.NullPointerException
Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
com.xdandroid.hellodaemon.DaemonEnv.startOrBindService(DaemonEnv.java:36)
中兴手机无法打开自启动设置界面或者受保护的应用设置
小米4,android4.4系统,杀了多次服务虽然会重启,但最后一次虽然服务在进程上看是启动了,但方法不知道为什么卡住了,不会调用
红米note1,android5.0,删了之后直接服务挂掉了
哪里有双服务互拉!!!!!明明是搞多了一个服务开启前台服务,为了不让用户看到弹出的通知栏
需要根据是否已经加入白名单来确定要不要弹出对话框
看String源码
public int hashCode() {
throw new RuntimeException("Stub!");
}
这里到底有没有问题,为什么不写简单点,例如
static final int sHashCode = 1;
每个厂商的自启动页面的组件名称是如何获取的?
例如: 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单独保活会不会增大开销呢?
在实际的使用过程中发现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));
如果整合LifecycleService了,我们就可以在service里使用livedata。
我用测试机测试过,划掉卡片/重启手机,一律不会再唤起service
现在运行app之后,打印出来中文字符串是乱码
是手误M敲成了N吗?
另外,我看摩拜单车在MIUI上的表现,直接转跳到了摩拜单车的神隐模式界面,而不是所有应用的神隐模式界面。在网上也找了资料,也看了MIUI设置的Manifest ,实在没找到,您可以找找看吗?这个作用还是挺大的。
还有,我希望whiteListMatters能有个返回值,表示遍历那些机型有没有匹配的。
谢谢
運行了 AbsWorkService.stopService(); 也停不了自己service 和 :watch service. 可以幫我一下嗎?
项目是什么编码格式?
1.项目需要显示主服务的通知栏,在Activity关闭的时候需要关掉通知栏,使用stopForground(ture)关掉了通知栏,结果主服务下一次无法正常启动了(startWork()方法没走了),其实我真正的目的是想唤醒gps定位。
2.加入白名单的弹窗每一次都会弹,我选择了自启动和耗电管理了,下次还是会弹出来。
我在JobSchedulerService里面的onStartJob打印log,不会打印,,是没执行吗?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.