问题描述
您好,我有一个像的AppLock一个应用程序(没有的AppLock),检查当前的应用程序由用户与选定的应用程序列表运行,如果再符合我HV我的code。我有可是没有任何一个循环服务电话Startu preceiver。类(广播接收器),它依次调用CheckRunningApplicationReceiver.Class(广播接收器),它会检查当前活动。我打电话CheckActivity为每0.5秒。我也很多存储,并在里面CheckActivity.Class内部存储检索的字符串。它耗尽我的电池。帮帮我吧。
MyService.class
公共类的MyService扩展服务{
私有静态最后弦乐TAG =为MyService@覆盖
公众的IBinder onBind(意向为arg0){
// TODO自动生成方法存根
返回null;
}
@覆盖
公共无效的onCreate(){}@覆盖
公共无效调用onStart(意向意图,诠释startId){//注意:您可以开始一个新的线程,并用它长期后台处理从这里开始。
}@覆盖
公众诠释onStartCommand(意向意图,诠释标志诠释startId){
// TODO自动生成方法存根
getBaseContext()。getApplicationContext()。sendBroadcast(
新的意图(Startu preceiver_Manual_Start)); 返回START_STICKY;}}
Startu preceiver.Class
公共类Startu preceiver延伸广播接收器{
静态最后弦乐TAG =SR;
最终诠释startupID = 1111111;
@覆盖
公共无效的onReceive(上下文的背景下,意图意图){
最后AlarmManager alarmManager =(AlarmManager)上下文
.getSystemService(Context.ALARM_SERVICE); 尝试{ 意图I7 =新意图(背景下,CheckRunningApplicationReceiver.class);
的PendingIntent ServiceManagementIntent = PendingIntent.getBroadcast(背景下,
startupID,i7处理器,0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(),
500,ServiceManagementIntent);
}赶上(例外五){
Log.i(TAG,异常:+ E);
}}
}
}
}
CheckRunningApplicationReceiver.Class
公共类CheckRunningApplicationReceiver扩展广播接收器实现Serializable {
@覆盖
公共无效的onReceive(上下文aContext,意图anIntent){ //我在这里做很多事情。
//我没有使用任何线程在这里(我不知道关于线程)。
//我在这里检查互联网连接,存储的检索
// ArrayList中,从这里内部存储字符串,获取当前
//运行应用程序和ArrayList的检查。
}
- 下面是我观察到,当我把报警时间为10毫秒的事情,当连接到笔记本电脑我的电话,电话的手机检测后延时15秒发生的,通过蓝牙传输文件,即使,有一个延迟。现在我打电话0.2秒。因此,我不能看到这些问题。请告诉我这样做的原因是什么?
- 我存储ArrayList和几串在内部存储。我应该使用共享preferences呢?
- 有没有广播接收器,它告诉我,如果当前运行的应用程序被改变?
- 我应该使用一个服务里面一个无限循环,而不是使用报警管理器?
- 如何在手机锁定或手机进入睡眠状态?停止CHeckRunningApp.Class
- 解决方案电池漏电?
There is no way to detect the new application launch (I don't think there's any such Broadcast receiver to support that), you can write a service which would keep on polling to look for running application using Activity Manager, but I don't think that would be efficient. You have to compromise, eith poll a a slow rate or Battery may drain fast.
Please have a look at this project - https://github.com/twinone/AppLocker
这篇关于电池是因为alarmManager和广播接收机的排放,我认为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!