service服务程序后台运行中断问题

u011042984 2018-12-16 05:48:47
各位大侠,你们好!
这几天碰到一个后台服务程序问题,代码如下。

问题:插上充电器时,运行测试一切正常。 但是拔掉充电器,只能运行一分钟左右。
编程平台:android studio 3.2
测试手机:android 8.0 (华为mate9)
测试方法:运行后,按home键,让程序在后台运行

麻烦大侠把我想想办法。多些各位了。

第一步:在activity的 onCreate 添加代码(部分代码)
Intent i=new Intent(this,RegistService.class);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
this.startForegroundService(i);
} else {
this.startService(i);
}
第二步:服务程序(全部代码)
public class RegistService extends Service {
Timer timer;
int num=0;
public static final String CHANNEL_ID_STRING = "test001";

@Override
public void onCreate() {
super.onCreate();
NotificationManager notificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel mChannel = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
mChannel = new NotificationChannel(CHANNEL_ID_STRING, "电话录音", NotificationManager.IMPORTANCE_HIGH);
notificationManager.createNotificationChannel(mChannel);
Notification notification = new Notification.Builder(getApplicationContext(), CHANNEL_ID_STRING).build();
startForeground(28, notification);
}
}
@Override
public void onStart(Intent intent, int startId) {
TimerTask task = new TimerTask(){
public void run(){
num=num+1;
Log.v(num+"count","test");
}
};
timer = new Timer();
timer.schedule(task, 1000,1000);
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
...全文
370 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011042984 2018-12-18
  • 打赏
  • 举报
回复
估计应该是华为手机问题。 不是软件问题

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧