halten Sie die Anwendung im hintergrund läuft

Ich will, dass meine Anwendung läuft im hintergrund

Ich habe eine Anwendung, die sendet den Standort des Benutzers auf unseren server

Ich habe den folgenden code:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    LocationManager locationManager;
    String context = Context.LOCATION_SERVICE;
    locationManager = (LocationManager)getSystemService(context);

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(true);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    String provider = locationManager.getBestProvider(criteria, true);

    updateWithNewLocation(null);

    locationManager.requestLocationUpdates(provider, (10*60*1000), 10,
                                           locationListener);
}
private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      updateWithNewLocation(location);
    }

    public void onProviderDisabled(String provider){
      updateWithNewLocation(null);
    }

    public void onProviderEnabled(String provider){ }
    public void onStatusChanged(String provider, int status, 
                                Bundle extras){ }
  };
  public void updateWithNewLocation(Location location) {


        if (location != null) {
            Dbhelper helper = new Dbhelper(this);
            final SQLiteDatabase db = helper.getWritableDatabase();
            long time = System.currentTimeMillis();
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            final String curTime = df.format(time);
            final double lat = location.getLatitude();
            final double lng = location.getLongitude();
            final double alt = location.getAltitude();
            System.out.println(lat);
            System.out.println(lng);
            System.out.println(alt);
            db.execSQL("INSERT INTO location (longitude,latitude,altitude,tgl_buat) VALUES " +
            "('"+lng+"','"+lat+"','"+alt+"','"+curTime+"')");
            db.close();
            /*Timer timer = new Timer();
            timer.scheduleAtFixedRate(new TimerTask(){
                @Override
                public void run(){
                    db.execSQL("INSERT INTO location (longitude,latitude,altitude,tgl_buat) VALUES " +
                            "('121.2149012','-6.217837','0.0','2012-05-07 10:20:01')");
                    db.close();
                }
            }, 10*60*1000, 10*60*1000);*/

          } 
       }

Möchte ich meine applicatioin, um die im hintergrund ausgeführt werden. Ich möchte, dass es automatisch gestartet, wenn das Telefon eingeschaltet ist

  • Gibt es eine Komponente, bekannt als Dienst in Android. Android documnetation, sagt Ein Dienst ist eine Komponente, die kann lang andauernder Operationen im hintergrund ausgeführt und hat keine Benutzeroberfläche. Für das automatische starten Sie die app, die Sie verwenden können AlarmManager.
InformationsquelleAutor akubabas | 2012-05-08
Schreibe einen Kommentar