gpt4 book ai didi

java - Android 服务未启动

转载 作者:行者123 更新时间:2023-12-01 11:42:45 24 4
gpt4 key购买 nike

我需要在单击 Android 应用程序图标时启动后台服务。下面是我的 Activity oncreate() 方法。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_executable_runner);

startService(new Intent(this, ExeRunnerService.class));
}

这是我重写的服务类,其余的都是默认值。

public class ExeRunnerService extends Service{
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;

}
@Override
public void onCreate() {
Thread th = new Thread(new Runnable() {
public void run() {
Log.d(TAG, "Service Running");
}
});
th.start();

}
}

我没有任何初始化代码。但是当我启动应用程序时,我没有收到任何服务日志。

最佳答案

我会放置并重写 onStartCommand,并在重写的 onCreate 方法中调用 super.onCreate() ;

像这样:

public class MyService extends Service {
private static boolean isRunning = false;
private Context context;

@Override
public void onCreate() {
super.onCreate();
context = this;
}

public static boolean isServiceRunning() {
return isRunning;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(!isRunning) {
isRunning = true;

}
return START_STICKY;
}

我添加了 isRunning 标志,因为我经常遇到我的服务已经在运行并再次初始化对象的情况,这不是一个好主意。

关于java - Android 服务未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392799/

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