1

現在時刻を表示するトーストを表示するサービスを作成しました。「分」の値が変わるとトーストが表示されます。私は何をすべきか ?これがコードです。分変数の変更をリッスンするリスナーを作成する必要がありますか?私を助けてください。

public class Servicedemo extends Service{
@Override
public void onCreate() {

    super.onCreate();
    Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
     String str;

        Calendar c=Calendar.getInstance();
        int hour=c.get(Calendar.HOUR);
        int min=c.get(Calendar.MINUTE);
        str=String.valueOf(hour)+":"+String.valueOf(min);

        Toast.makeText(this, str , Toast.LENGTH_SHORT).show();

}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    Toast.makeText(this, "Service Stopped", Toast.LENGTH_SHORT).show();
}

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


}
4

1 に答える 1

2

次のように、timertask を 1 つ作成し、run メソッドをオーバーライドする必要があります。

    public class yourAsyncTimerTask extends TimerTask{

    @Override
    public void run() {
                Calendar c=Calendar.getInstance();
                int hour=c.get(Calendar.HOUR);
                int min=c.get(Calendar.MINUTE);
                String str = String.valueOf(hour)+":"+String.valueOf(min);

            Toast.makeText(this, str , Toast.LENGTH_SHORT).show();

    }

}

そしてタイマーをセット

Timer timer = new Timer();      
timer.schedule(new yourAsyncTimerTask(), 1 * 60 * 1000,  1 * 60 * 1000);
于 2012-08-01T10:29:31.033 に答える