Die Implementierung eines Count-down-timer mit Service im hintergrund

Was ich tun soll in meiner app:
1. Wenn der Benutzer die app öffnet, wird er in der Lage, um zu sehen, eine bereits laufende countdown-timer. So in diesem Fall möchte ich zeigen die zahlen des Countdowns in eine textview, die wird immer aktualisiert, jede Sekunde.
2. Die Benutzer werden in der Lage sein, um es zu stoppen.
3. Der Benutzer kann die Anwendung verlassen, aber der countdown sollte die noch gehen Sie auf und zeigen Sie die aktuelle Uhrzeit, wenn er kommt zurück, um der UI der Anwendung.

Also auf der Grundlage der oben genannten Punkte, kann ich verstehen, muss ich implementieren, Service -, das funktioniert im hintergrund. Ich habe gelesen, diese link, aber mein problem ist die Umsetzung. Ich bin ganz bei verloren darüber, wie zu implementieren, die Art und Weise. That being said, ich kann auch nicht denken Sie an einen Weg zu zeigen, die Zeit in der Benutzeroberfläche nachdem der Benutzer kommt wieder auf die Anwendung. Ich habe auch gesehen, dieser link als gut, aber ich bin nicht sicher, ob nur die CountDownTimer macht es einen Laufenden Service.
Also wie soll ich Vorgehen und Umsetzung? Alle links zu bestimmten tutorials/codes sind geschätzt. Danke.

UPDATES: ich habe bisher in der Lage, Folgendes zu tun:
MainActivity.java

public class MainActivity extends Activity {

Button btnStart,btnStop;
Intent serviceIntent;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnStart = (Button) findViewById(R.id.btnStart);
    btnStop = (Button) findViewById(R.id.btnStop);
    tv = (TextView) findViewById(R.id.timeView);

    //final MyCounter timer = new MyCounter(100000,1000);
    //tv.setText("100"); 
    //timer.start();
    serviceIntent = new Intent(MainActivity.this,MyService.class);

    btnStart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //TODO Auto-generated method stub
            startService(serviceIntent);
        }
    });

    btnStop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //TODO Auto-generated method stub
            stopService(serviceIntent);
        }
    });
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

MyService.java:

public class MyService extends Service {

MyCounter timer;
@Override
public void onCreate() {
    //TODO Auto-generated method stub
    timer = new MyCounter(100000,1000);
    super.onCreate();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //TODO Auto-generated method stub
    timer.start();
    return super.onStartCommand(intent, flags, startId);
}
private class MyCounter extends CountDownTimer{

    public MyCounter(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onFinish() {
        Toast.makeText(getApplicationContext(), "death", Toast.LENGTH_LONG).show();
        stopSelf();
    }

    @Override
    public void onTick(long millisUntilFinished) {

        Toast.makeText(getApplicationContext(), (millisUntilFinished/1000)+"", Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onDestroy() {
    //TODO Auto-generated method stub
    timer.cancel();
    //stopSelf();
    super.onDestroy();

}

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

    }

Das problem ist:
1. Ich weiß nicht, wie um zu zeigen, der countdown auf der MainActivity UI abgesehen von diesem Toast.
2. Es hört nicht auf zu zählen, wenn ich drücken Sie die Stop-Taste.

Ich denke, mit broadcast können Sie eine Mitteilung, wird diese Ihnen helfen.
könnten Sie bitte erklären, um die Umsetzung? Ich habe gesehen, ein tutorial von vogella vogella.com/articles/AndroidServices/article.html und der konnte mir nicht helfen zu verstehen, wie broadcast-Empfänger genannt werden.
check vogella.com/articles/AndroidBroadcastReceiver/article.html und edureka.in/blog/android-tutorials-broadcast-Receiver hoffe das wird dir helfen
Sie können LocalBroadcastManager, es ist der einfachste Weg, siehe dieses tutorial intertech.com/Blog/Post/...
der link funktioniert nicht 🙁

InformationsquelleAutor Arefin | 2013-05-05

Schreibe einen Kommentar