我需要从扩展 TimerTask 的类中调用扩展 IntentService 的类。我正在努力弄清楚以这种方式使用 Intent 时上下文是如何工作的。
从MainActivity 运行,我设置了计时器并运行扩展了TimerTask 的timer() 类。
Timer poll_timer = new Timer();
poll_timer.schedule(new timer(),0, 1000);
这段代码是timer()类的一部分,但我不知道如何正确调用使用Intent或将MainActivity上下文传递给timer()类。 这就是我从 MainActivity 中调用它的方式
Intent gps = new Intent(this, gps.class);
startService(gps);
任何有关这方面的帮助都将不胜感激,因为我对 Java 还很陌生。
最佳答案
要实现您的要求,请将上下文对象传递给 TimerTask 类并使用它来调用 startService。
在 Activity 代码中,
Timer poll_timer = new Timer();
poll_timer.schedule(new Timertesttask(MainActivity.this),0, 1000);
TimerTask代码,
public class Timertesttask extends TimerTask {
Context ctxObject = null;
public Timertesttask(Context ctx) {
ctxObject = ctx;
}
@Override
public void run() {
Intent gpsintent = new Intent(ctxObject, Gps.class);
ctxObject.startService(gpsintent);
}
}
您的 Intent 服务类,
public class Gps extends IntentService {
public Gps() {
super("Gps");
}
@Override
protected void onHandleIntent(@Nullable Intent intent) {
Log.d("Testing","Testing");
}
}
将IntentService的条目放入AndroidManifest中
<service android:name=".Gps" />
关于java - 来自扩展 TimerTask 的类中的 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146064/