自定义LifeCycle

LifeCycleAware

import android.app.Activity;

import java.util.LinkedList;
import java.util.List;

public class LifeCycleAware {

	private boolean started;

	private boolean resumed;

	private boolean destroyed;

	private List<Listener> listenerList = new LinkedList<>();

	private Activity activity;

	public LifeCycleAware() {
	}

	public LifeCycleAware(Activity activity) {
		this.activity = activity;
	}

	public boolean isStarted() {
		return started;
	}

	public boolean isResumed() {
		return resumed;
	}

	public boolean isFinished() {
		if (activity == null) {
			return destroyed;
		}
		return activity.isFinishing();
	}

	public boolean isDestroyed() {
		return destroyed;
	}

	public void onStart() {
		started = true;
		for (Listener listener : listenerList) {
			listener.onStart();
		}
	}

	public void onStop() {
		started = false;
		for (Listener listener : listenerList) {
			listener.onStop();
		}
	}

	public void onResume() {
		resumed = true;
		for (Listener listener : listenerList) {
			listener.onResume();
		}
	}

	public void onPause() {
		resumed = false;
		for (Listener listener : listenerList) {
			listener.onPause();
		}
	}

	public void onDestroy() {
		destroyed = true;
		for (Listener listener : listenerList) {
			listener.onDestroy();
		}
	}

	public void addListener(Listener listener) {
		listenerList.add(listener);
	}

	public void removeListener(Listener listener) {
		listenerList.remove(listener);
	}

	public void setActivity(Activity activity) {
		this.activity = activity;
	}

	public static abstract class Listener {

		public void onDestroy() {
		}

		public void onResume() {
		}

		public void onPause() {
		}
		public void onStart(){

		}
		public void onStop(){

		}
	}
}

BaseActivity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class BaseActivity extends AppCompatActivity {
    public LifeCycleAware lifeCycleAware;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        lifeCycleAware=new LifeCycleAware(this);
    }

    @Override
    protected void onStart() {
        super.onStart();
        lifeCycleAware.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        lifeCycleAware.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        lifeCycleAware.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        lifeCycleAware.onDestroy();
    }
    public LifeCycleAware getLifeCycleAware() {
        return lifeCycleAware;
    }
}

DemoHelper

import android.content.Context;

public class DemoHelper {
    private Context context;

    private LifeCycleAware lifeCycleAware;

    public  DemoHelper(Context context,LifeCycleAware lifeCycleAware){
        this.context=context;
        this.lifeCycleAware=lifeCycleAware;
        init();
    }

    private void init() {
        lifeCycleAware.addListener(new LifeCycleAware.Listener() {
            @Override
            public void onDestroy() {
                super.onDestroy();
                lifeCycleAware.removeListener(this);//具体remove时机自己把握
            }

            @Override
            public void onResume() {
                super.onResume();
            }

            @Override
            public void onPause() {
                super.onPause();
            }


            @Override
            public void onStart() {
                super.onStart();
            }

            @Override
            public void onStop() {
                super.onStop();
            }
        });
    }


}
4 使用
import android.os.Bundle;

public class MainActivity extends BaseActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DemoHelper demoHelper=new DemoHelper(this,getLifeCycleAware());
    }
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值