【问题标题】:IntentService from within a class that extends TimerTask来自扩展 TimerTask 的类中的 IntentService
【发布时间】:2019-09-28 11:54:47
【问题描述】:

我需要从扩展 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 新手,因此我将不胜感激。

【问题讨论】:

    标签: java android


    【解决方案1】:

    要满足您的要求,请将上下文对象传递给 TimerTask 类并使用它来调用 startService。

    在活动代码中,

     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");
        }
    }
    

    在AndroidManifest中加入IntentService的入口

    <service android:name=".Gps" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-14
      • 2012-12-02
      • 2013-02-23
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多