C
ChrisH
Gast
Hallo,
Ich habe mal eine Frage:
Am Anfang der Activity soll einmal die Zeit abgefragt werden, die dann auch in den TextViews angezeigt wird. Nun wird ein Service gestartet, der nach jeder Minute der Activity "sagen" soll, dass die Zeit aktualisiert werden muss. Ich habe im Internet verschiedene Methoden gefunden, zwischen dem Service und der Activity zu kommunizieren. Mir schien die Methode mit dem BroadcastReceiver am sinnvollsten und überschaubarsten. Wenn ich jetzt aber die Applikation starte wird die Zeit nicht aktualisiert.
Ich habe mich nun schon länger damit beschäftigt, aber keine Lösung gefunden.
Über Antworten und Tipps würde ich mich sehr freuen!
Hier ist der Quellcode(da ich mir Java selbst beigebracht habe, oder dabei bin ist die Textformatierung sicherlich nicht korrekt) von meiner Activity:
...und hier von meinem Service:
Ich habe mal eine Frage:
Am Anfang der Activity soll einmal die Zeit abgefragt werden, die dann auch in den TextViews angezeigt wird. Nun wird ein Service gestartet, der nach jeder Minute der Activity "sagen" soll, dass die Zeit aktualisiert werden muss. Ich habe im Internet verschiedene Methoden gefunden, zwischen dem Service und der Activity zu kommunizieren. Mir schien die Methode mit dem BroadcastReceiver am sinnvollsten und überschaubarsten. Wenn ich jetzt aber die Applikation starte wird die Zeit nicht aktualisiert.
Ich habe mich nun schon länger damit beschäftigt, aber keine Lösung gefunden.
Über Antworten und Tipps würde ich mich sehr freuen!
Hier ist der Quellcode(da ich mir Java selbst beigebracht habe, oder dabei bin ist die Textformatierung sicherlich nicht korrekt) von meiner Activity:
Java:
public class Home extends Activity {
TextView tv1;
TextView tv2;
Time time = new Time();
private BroadcastReceiver mReceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homelayout);
tv1 = (TextView)findViewById(R.id.textView1);
tv1.setTextColor(Color.GRAY);
tv2 = (TextView)findViewById(R.id.textView2);
tv2.setTextColor(Color.GRAY);
time.setToNow();
tv1.setText(time.format("%H%:%M"));
tv2.setText(time.format("%d%.%m%.%Y"));
startService(new Intent(this,UhrService.class));
}
private void refresh(){
tv1.setText(time.format("%H%:%M"));
tv2.setText(time.format("%d%.%m%.%Y"));
}
@Override
public void onResume(){
super.onResume();
IntentFilter filter = new IntentFilter("android.intent.action.MAIN");
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
refresh();
}
};
this.registerReceiver(mReceiver,filter);
}
@Override
public void onPause(){
super.onPause();
this.unregisterReceiver(this.mReceiver);
}
}
...und hier von meinem Service:
Java:
public class UhrService extends Service {
Time time = new Time();
int altMinute;
int z;
@Override
public void onCreate(){
super.onCreate();
z = 1;
ZeitHolen();
}
void ZeitHolen(){
while(true){
time.setToNow();
if(z==1)
{
altMinute=time.minute;
z++;
}
int dif = time.minute-altMinute;
if(dif>=1)
{
Intent intent = new Intent("android.intent.action.MAIN");
sendBroadcast(intent);
altMinute=time.minute;
}
}
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}