Track Gps At every 10 minutes using timer in android

久未见 提交于 2019-12-11 04:12:55

问题


I am developing an android application and I am using a service that tracks location via GPS every 10 minutes. But when I put the location listener in a timer task, it throws an exception:

Cannot put code inside thread that has not called looper.prepare().

Does anyone have any insight on this problem?


回答1:


You need not to start a service for recieving locationUpdate every 10 min instead do something like this

 mLocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
 mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 600000, 0, mLocListener);

this will automatically send update to the listener every 10 min

When ever you got error like Looper . that mean you are not allowed to do something from other then Main UI Worker thread.

What so code you are running and getting this error . execute the code from Main UI Thread. or create a Handler object in your main class by Main Thread

 Handler mHandler = new Handler();

Then in any of your other thread do something like this

  new Thread(new Runnable(){ public void run(){

           // any of your code
        mHandler.post(new Runnable(){public void run(){

         // the code giving you error Looper
        }});
   }}).start();



回答2:


This method is easy and can update UI thread:

      new CountdownTimer(30000, 1000) { 

    public void onTick(long millisUntilFinished) { 
        mTextField.setText("seconds remaining: " + millisUntilFinished / 1000); 
    } 

    public void onFinish() { 
        mTextField.setText("done!"); 
    } 
 }.start(); 


来源:https://stackoverflow.com/questions/4921916/track-gps-at-every-10-minutes-using-timer-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!