gpt4 book ai didi

java - 访问 JobIntentService 内的类字段值时出现问题

转载 作者:行者123 更新时间:2023-12-02 01:59:54 25 4
gpt4 key购买 nike

我尝试在 Android 上使用 JobIntentService,但在访问 onHandleWork 方法内的类字段时遇到问题。我的 discoverable 字段在 onHandleWork 方法中似乎始终为 null。

这是我的 JobIntentService 类:

import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v4.app.JobIntentService;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;
import io.hypertrack.smart_scheduler.Job;
import io.hypertrack.smart_scheduler.SmartScheduler;

public class NetworkCheckService extends JobIntentService {
private static final int jobId = 1;

private Settings settings;
private NetworkInformation networkInfo;
private Networks networks;
private Discoverable discoverable;

{
Logger.addLogAdapter(new AndroidLogAdapter());
}

// Needs an empty constructor for some reason.
public NetworkCheckService() {
}

public NetworkCheckService(Context context) {
this.settings = new Settings(context);
this.networkInfo = new NetworkInformation(context);
this.networks = new Networks(context, networkInfo);
this.discoverable = new Discoverable(settings, networks);
}

private Discoverable getDiscoverable() {
return discoverable;
}

static void enqueueWork(Context context, Intent work) {
enqueueWork(context, NetworkCheckService.class, jobId, work);
}

public void onHandleWork(@NonNull Intent intent) {
Logger.d(discoverable); // discoverable is null
Discoverable foo = getDiscoverable(); // foo is null
}

}

我的主要 Activity 类别:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

NetworkCheckService networkCheckService = new NetworkCheckService(this);
networkCheckService.enqueueWork(this, new Intent());
}

}

最佳答案

我们不应该在服务类中创建任何构造函数。它是由android系统实现的。这就是你的成员变量变成null的原因。最好在 onHandleWork 方法中初始化它们。

关于java - 访问 JobIntentService 内的类字段值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51758913/

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