gpt4 book ai didi

android - 如何使用 StartForeground 服务 android

转载 作者:行者123 更新时间:2023-11-29 01:58:28 26 4
gpt4 key购买 nike

我有一个 Main activity,它可以使用这个命令启动一个服务

startService(new Intent(Main.this, Myservice.class));

而Myservice类是这样的

   public class Myservice extends Service {
private ShakeListener mShaker;
String startell;
SharedPreferences prefs;

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
// TODO Auto-generated method stub


//Something

}

@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub

//Do Something to detecting shake
//Show my notification


}


@Override
public void onDestroy() {
// TODO Auto-generated method stub

//Stop Shake detection
//stop notification


super.onDestroy();
}


}

我的应用程序工作正常,但大约一小时后,服务自动停止,我的意思是大约一小时后抖动检测不再工作。 :(

我用谷歌搜索了一下,我发现我应该使用 StartForeground,但我没有找到如何使用。

现在,我应该如何在我的代码中使用 StartForeground?

最佳答案

获取和释放锁的代码

//在onCreate()方法中获取唤醒锁

devicePowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);

wakeLock = devicePowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
if(wakeLock != null){
if(wakeLock.isHeld() == false){
wakeLock.acquire();
}
}

//在onDestroy()方法中释放唤醒锁

if (wakeLock != null) {
if(wakeLock.isHeld()){
wakeLock.release();
wakeLock = null;
}
}

关于android - 如何使用 StartForeground 服务 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13889885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com