Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 位置用Gps解决大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用服务类,它调用我的内部类来实现LOCATIOn Listener,它提供了我的位置详细信息……但我需要在常规间隔中执行此操作..我使用了Thread with looper但它只执行一次请帮助

这是我的回答
更新的答案

public class Myservice extends service 
{
     String GPS_FILTER = "";
     Thread triggerservice;
     LOCATIOnListener LOCATIOnListener;
     LOCATIOnManager lm;
     private static final long MINIMUM_DISTANCE_CHANGE_FOR_updatES = 1000; // in Meters
     private static final long MINIMUM_TIME_betweeN_updatES = 1000*60; // in Milliseconds
     protected LOCATIOnManager LOCATIOnManager;
     Boolean isRunning = true;
     @Override
     public void onCreate() 
     {
           // TODO Auto-generated method stub
           super.onCreate();
           GPS_FILTER = "MyGPSLOCATIOn";
//           LOCATIOnManager = (LOCATIOnManager) getSystemservice(Context.LOCATION_serviCE);
//           LOCATIOnManager.requestLOCATIOnupdates(
//                   LOCATIOnManager.GPS_PROVIDER,//                   MINIMUM_TIME_betweeN_updatES,//                   MINIMUM_DISTANCE_CHANGE_FOR_updatES,//                   new MyLOCATIOnListener());
     }

     @Override
     public void onStart(Intent intent,int startId)
     {
           // TODO Auto-generated method stub
           super.onStart(intent,startId);     
           turnGPSOn();
           Toast.makeText(getApplicationContext(),"Hello1",Toast.LENGTH_LONG).show();
           LOCATIOnManager LOCATIOnManager = (LOCATIOnManager)getSystemservice(Context.LOCATION_serviCE);
           LOCATIOnListener = new MyLOCATIOnListener();
           LOCATIOnManager.requestLOCATIOnupdates(LOCATIOnManager.GPS_PROVIDER,MINIMUM_TIME_betweeN_updatES,1.0f,LOCATIOnListener);

     }

     @Override
     public void onDestroy() {
           // TODO Auto-generated method stub
           super.onDestroy();
          // removeGpsListener();
     }

     @Override
     public IBinder onBind(Intent intent) {
           // TODO Auto-generated method stub
           return null;
     }

//     private void removeGpsListener(){
//           try{
//                 lm.removeupdates(LOCATIOnManager);
//           }
//           catch(Exception eX){
//                 System.out.println("Exception in GPSservice --- "+eX);
//           }
//     }


     private class MyLOCATIOnListener implements LOCATIOnListener
     {

         public void onLOCATIOnChanged(LOCATIOn LOCATIOn) 
         {
            postdata(LOCATIOn.getLatitude(),LOCATIOn.getLongitude());
             String message = String.format(
                     "New LOCATIOn \n Longitude: %1$s \n Latitude: %2$s",LOCATIOn.getLongitude(),LOCATIOn.getLatitude()
             );
             Toast.makeText(Myservice.this,message,Toast.LENGTH_LONG).show();
             turnGPSOnOff();
         }

         public void onStatusChanged(String s,int i,Bundle b) {
//              Toast.makeText(Myservice.this,"Provider status changed",//                     Toast.LENGTH_LONG).show();
         }

         public void onProviderDisabled(String s) {
//             Toast.makeText(Myservice.this,//                     "Provider disabled by the user. GPS turned off",//                     Toast.LENGTH_LONG).show();
         }

         public void onProviderEnabled(String s) {
//             Toast.makeText(Myservice.this,//                     "Provider enabled by the user. GPS turned on",//                     Toast.LENGTH_LONG).show();
         }

     }

也叫使用服务

Calendar cur_cal = Calendar.geTinstance();
   cur_cal.setTimeInMillis(System.currentTimeMillis());
   Intent intent = new Intent(this,Myservice.class);
   PendingIntent pintent = PendingIntent.getservice(login.this,intent,0);
   AlarmManager alarm = (AlarmManager)getSystemservice(Context.ALARM_serviCE);
   alarm.setRepeaTing(AlarmManager.RTC_WAKEUP,cur_cal.getTimeInMillis(),60*1000,pintent);

解决方法

试试这个…

TimerTask doAsynchronousTask;
long timerCall = 5000;  
final Handler handler = new Handler();  
Timer timer = new Timer();

public static int times = 0;

 // For tracking
doAsynchronousTask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    try {
                        performBACkgroundTask.execute();//In this function add your code which you want to  call repeatedly. OR ADD  lm = (LOCATIOnManager)getSystemservice(Context.LOCATION_serviCE);
                         Toast.makeText(getApplicationContext(),Toast.LENGTH_LONG).show();
                         gpsLOCATIOnListener = new GpsListener();
                         long minTime = 30000; // 5 sec...
                         float minDistance = 10;
                         lm.requestLOCATIOnupdates(LOCATIOnManager.GPS_PROVIDER,minTime,minDistance,gpsLOCATIOnListener);

                         Log.d("BGT","BGT=" + times++);//how many time it called
                    } catch (Exception E) {
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask,timerCall);// execute in every 50000 ms

`

大佬总结

以上是大佬教程为你收集整理的android – 位置用Gps解决全部内容,希望文章能够帮你解决android – 位置用Gps解决所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。