美文网首页
JetPack_Lifecycle

JetPack_Lifecycle

作者: 老北瓜 | 来源:发表于2020-03-18 16:39 被阅读0次

    假设有 Chronometer 这个控件,要求在Activity不同的生命周期实现start()或者 stop(), 如果把代码都写在Activity中相当臃肿,
    可以自定义一个 Chronometer 的子类

    public class MyChronometer extends Chronometer implements LifecycleObserver {
        private long lastTime;
        public MyChronometer(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
        public void parseMeter() {
            lastTime = SystemClock.elapsedRealtime() - getBase();
            stop();
        }
    
        @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
        public void start() {
            // 接着过去的 时间 接着开始 ;
            setBase(SystemClock.elapsedRealtime() - lastTime);
            start();
        }
    }
    

    只需要在Activity中 find控件,

    MyChronometer cho = findViewById(R.id.cho);
    getLifecycle().addObserver(cho);
    

    相关文章

      网友评论

          本文标题:JetPack_Lifecycle

          本文链接:https://www.haomeiwen.com/subject/qnhcyhtx.html