M
MrJack
Ambitioniertes Mitglied
- 10
Hallo!
Ich möchte folgendes implementieren:
1) Ein Service, welches einen Countdown startet
2) Eine Activity, die jede Sekunde (mittels BroadcastReceiver? die aktuelle Zeit bekommt und ins UI einträgt)
3) Ein Widget, welches jede Minute die aktuelle Zeit bekommt und ins UI einträgt
Leider weiß ich nicht genau, wie das umzusetzen ist.
Folgendes habe ich schon:
Service:
Hier ist meine Activity:
Bis hierhin funktioniert alles wunderbar.
Problem ist jetzt: Wie erstelle ich das Widget, welches minütlich die Informationen vom Service bekommt?
Zunächst brauche ich ja sowieso mal irgendein Workaround mittels AlarmManager, damit ich die Aktualisierungszeit auf 1 Minute verringen kann.
Wie soll ich das umsetzen?
Danke
Ich möchte folgendes implementieren:
1) Ein Service, welches einen Countdown startet
2) Eine Activity, die jede Sekunde (mittels BroadcastReceiver? die aktuelle Zeit bekommt und ins UI einträgt)
3) Ein Widget, welches jede Minute die aktuelle Zeit bekommt und ins UI einträgt
Leider weiß ich nicht genau, wie das umzusetzen ist.
Folgendes habe ich schon:
Service:
Code:
public class MyService extends Service
{
public static final String BROADCAST_ACTION = "myaction";
@Override
public void onCreate()
{
final Intent intent = new Intent( BROADCAST_ACTION );
new CountDownTimer( 100000, 1000 )
{
@Override
public void onTick( long millisUntilFinished )
{
// Zeit entsprechend berechnen und in bestimmtes Format bringen (z.B. HH:mm:SS)
intent.putExtra( "time", formattedString );
sendBroadcast( intent );
}
@Override
public void onFinish()
{
}
}.start();
}
@Override
public IBinder onBind( Intent intent )
{
// TODO Auto-generated method stub
return null;
}
}
Hier ist meine Activity:
Code:
public class MyActivity extends Activity
{
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive( Context context, Intent intent )
{
String time = intent.getStringExtra( "time" );
TextView tvTime= (TextView) findViewById( R.id.tvTime);
tvTime.setText( time );
}
};
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
intent = new Intent( this, MyService.class );
startService( intent );
registerReceiver( broadcastReceiver, new IntentFilter( MyService.BROADCAST_ACTION ) );
}
}
Bis hierhin funktioniert alles wunderbar.
Problem ist jetzt: Wie erstelle ich das Widget, welches minütlich die Informationen vom Service bekommt?
Zunächst brauche ich ja sowieso mal irgendein Workaround mittels AlarmManager, damit ich die Aktualisierungszeit auf 1 Minute verringen kann.
Wie soll ich das umsetzen?
Danke