java - 来自扩展 TimerTask 的类中的 IntentService

标签 java android

我需要从扩展 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/

相关文章:

java.lang.NoClassDefFoundError : android. support.v7.app.AppCompatDelegateImplV14 在Android Studio

java - Eclipse Tomcat 实例试图从不在源代码中的包初始化 spring bean

java - 执行方法时发生 NullPointerException

java - mys JSP中的迭代器错误

java - 如何在 zk 日历组件中触发 dragble 事件

Android 致命信号 11 (SIGSEGV) 位于 0x636f7d89 (code=1)。如何追踪它?

java - 如何使用 MatOfKeyPoint 绘制矩形以进行文本检测 | java

类似 twitter 示例的 Android 操作栏

android - 为 android 的 parse.com 数据库上的列读取和检索所有行的数据

java - 无法将值添加到我的嵌套 HashMap 中