来自扩展 TimerTask 的类中的 IntentService

我需要从扩展 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 相当陌生。


RISEBY
浏览 84回答 1
1回答

MMTTMM

为了实现您的要求,请将上下文对象传递给 TimerTask 类并使用它来调用 startService。在活动代码中,&nbsp;Timer poll_timer = new Timer();&nbsp;poll_timer.schedule(new Timertesttask(MainActivity.this),0, 1000);定时器任务代码,public class Timertesttask extends TimerTask {&nbsp; &nbsp; Context ctxObject = null;&nbsp; &nbsp; public Timertesttask(Context ctx) {&nbsp; &nbsp; &nbsp; &nbsp; ctxObject = ctx;&nbsp; &nbsp; }&nbsp; &nbsp; @Override&nbsp; &nbsp; public void run() {&nbsp; &nbsp; &nbsp; &nbsp; Intent gpsintent = new Intent(ctxObject, Gps.class);&nbsp; &nbsp; &nbsp; &nbsp; ctxObject.startService(gpsintent);&nbsp; &nbsp; }}你的意图服务类,public class Gps extends IntentService {&nbsp; &nbsp; public Gps() {&nbsp; &nbsp; &nbsp; &nbsp; super("Gps");&nbsp; &nbsp; }&nbsp; &nbsp; @Override&nbsp; &nbsp; protected void onHandleIntent(@Nullable Intent intent) {&nbsp; &nbsp; &nbsp; &nbsp; Log.d("Testing","Testing");&nbsp; &nbsp; }}将IntentService的入口放入AndroidManifest中<service android:name=".Gps" />
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java