LifeCycles
MainActivity
package com.example.lifecycles; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.SystemClock; import android.widget.Chronometer; public class MainActivity extends AppCompatActivity { MyChronometer chronometer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chronometer=findViewById(R.id.TextView); getLifecycle().addObserver(chronometer); } }
MyChronometer
package com.example.lifecycles; import android.content.Context; import android.os.SystemClock; import android.util.AttributeSet; import android.widget.Chronometer; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; public class MyChronometer extends Chronometer implements LifecycleObserver { private long elapseTime; public MyChronometer(Context context, AttributeSet attrs) { super(context, attrs); } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) private void pauseMeter(){ elapseTime= SystemClock.elapsedRealtime()-getBase(); stop(); } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) private void resumeMeter(){ setBase(SystemClock.elapsedRealtime()-elapseTime); start(); } }
浙公网安备 33010602011771号