当前位置: 首页 > 知识库问答 >
问题:

背景服务在奥利奥不起作用

欧阳山
2023-03-14
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ctx = this;
    setContentView(R.layout.activity_main);
    Intent alarmIntent = new Intent(MainActivity.this, AlarmReceiver.class);
    pendingIntent = PendingIntent.getBroadcast(MainActivity.this, ALARM_REQUEST_CODE, alarmIntent, 0);
    mSensorService = new SensorService(getCtx());
    mServiceIntent = new Intent(getCtx(), mSensorService.getClass());
    if (!isMyServiceRunning(mSensorService.getClass())) {
        startService(mServiceIntent);
    }
}

Ths是我的服务班

   public class SensorService extends Service{

public int counter=0;
public SensorService(Context applicationContext) {
    super();
    Log.i("HERE", "here I am!");
}

public SensorService() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    super.onStartCommand(intent, flags, startId);
    startTimer();
    return START_STICKY;
}
@Override
public void onDestroy() {
    super.onDestroy();
    Log.i("EXIT", "ondestroy!");
    Intent broadcastIntent = new Intent("uk.ac.shef.oak.ActivityRecognition.RestartSensor");
    sendBroadcast(broadcastIntent);
  }

private Timer timer;
private TimerTask timerTask;
long oldTime=0;
public void startTimer() {
    //set a new Timer
    timer = new Timer();

    //initialize the TimerTask's job
    initializeTimerTask();

    //schedule the timer, to wake up every 1 second
    timer.schedule(timerTask, 1000, 1000); //
}

/**
 * it sets the timer to print the counter every x seconds
 */
public void initializeTimerTask() {
    timerTask = new TimerTask() {
        public void run() {
            Log.i("in timer", "in timer ++++  "+ (counter++));
        }
    };
}

/**
 * not needed
 */


@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

}

共有1个答案

杜经艺
2023-03-14

说来话长。我已经经历过了。仍然执行了。现在,我的服务在每个boot_complete事件上运行,并且一直在运行(带有通知)。

  • 官方文档:

大不。谷歌android开发人员的文档很差,没有合适的示例。它是理论上的,只是理论上的。有兴趣就继续读

你的设备必须有适当的android操作系统发布和燃烧,因为它是。

是的,我正在使用android:

No... You are Using Funtouch OS : VIVO ( By modifying Android)

市面上彩色OS的设备很多:OPPO(通过修改Android)........

    null
 类似资料:
  • [https://developer.android.com/about/versions/oreo/background.html]-真的没有办法为我的用例(但最好是为所有用例)提供永久的后台服务吗?

  • 我在和前台服务作斗争。在我的设备(Redmi 5 Plus,Android 8.1.0)上,当应用程序从最近的应用程序中删除时,服务通知将不再可见。在其他设备(Android5.0.1、Android7.0)和模拟器(Android8.1-API27)上,当应用程序从最近的应用程序中删除时,通知仍然可见。 在main activity中,我使用启动服务。 这是我的舱单文件: 我错过了什么?它是与后

  • 我正在使用后台服务,以获得用户的位置和上传到服务器。 我使用了一个扩展Service类的LocationTrack类和扩展BroadcastReciver的AlramReciver。 我已经在manifest中添加了所有权限,并在manifest文件中注册了AlarmReciver和LocationTracker类。 Oreo-在前台启动服务 https://developer.android.c

  • 我正在使用服务作为前台之一。在android pre O版本上,一切都很好。但在Android奥利奥当我关闭app时,前台服务也关闭了…… 你知道为什么它与应用程序关闭以及如何防止它吗? 谢了!