0

私は、アプリが開いている場合は1時間後に調整されたGPSを送信する必要があり、ログアウト後にアプリが開かれると、アプリが起動したときに調整されたGPSがサーバーに送信され、アプリが開いたままの場合は送信されるアプリを作成しています1時間の間、gps座標が送信され、アプリが1時間前に閉じられた場合、アプリはgps座標を送信しません。私のコードは次のとおりです。

TimerTask timer_task = new TimerTask() {

            public void run()
            {
                        Log.v(".............................................", "Timer Task Started");
                        System.out.println("@@@@@@@@@@ timer task started  IN TRACKER11111");
                        try
                        {
                            // if (locn != null)
                            {

                                Calendar cal = Calendar.getInstance();
                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
                                String time = sdf.format(cal.getTime());
                                String xml = xml parameters being send to server
                                System.out.println(xml);
                                System.out.println("hello");

                                System.out.println("Xml is : "+xml);

                            //  FileSave obj9=new FileSave();
                            //  obj9.Save(xml);


                                int len = xml.length();

                                byte[] data = xml.getBytes();
                                System.out.println("Length =****************************  " + len);

                                System.out.println("Stream Closed");

                                conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                                if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected())
                                {
                                    //if (gps.equals("yes"))
                                    {
                                        new Connection(data);
                                    }
                                }
                                else
                                {
                                }

                            }
                            }
                        catch (Exception e)
                        {
                            e.printStackTrace();
                        }

            }
        };
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(timer_task, 4000, 3600000);   






         }
        catch (Exception e1) {
            e1.printStackTrace();
        }
4

1 に答える 1

0

それに応じて、指定されたコードを変更するだけです。

    Timer timer = new Timer();
    timer.scheduleAtFixedRate(timer_task, 0, 3600000);   

次のように、ロケーションマネージャで時間と最小距離を設定します。

mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    mlocListener = new MyLocationListener();
    mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,3600000, 40,  mlocListener);

ここで、3600000はタイムスロット、40はメートル単位の距離であり、mlocマネージャーとmlocリスナーはロケーションマネージャーとロケーションリスナーです。

于 2012-01-04T10:51:46.040 に答える