package org.heaven7.scrap.sample.scrapview; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import org.heaven7.scrap.core.lifecycle.ActivityLifeCycleAdapter; import org.heaven7.scrap.core.lifecycle.IActivityLifeCycleCallback; import org.heaven7.scrap.sample.R; import org.heaven7.scrap.sample.ScrapLog; import org.heaven7.scrap.sample.util.DialogUtil; import org.heaven7.scrap.util.ScrapHelper; import java.util.Timer; import java.util.TimerTask; /** * test the stand life cycle of activity. * <li>Note: Because this view is attached to the Activity. so activity is created. * some methods will not called.</li> * if you want register global life cycle callback (.please use * {@link org.heaven7.scrap.util.ScrapHelper#registerActivityLifeCycleCallback(IActivityLifeCycleCallback...)} * and {@link org.heaven7.scrap.util.ScrapHelper#unregisterActivityLifeCycleCallback(IActivityLifeCycleCallback...)} * it has more methods. * Created by heaven7 on 2015/8/4. */ public class TestLifeCycleScrapView extends CommonView { private IActivityLifeCycleCallback callback ; public TestLifeCycleScrapView(Context mContext) { super(mContext); } @Override protected void onPostInit() { // offen register it in onAttach. but here we want to see the life cycle . so register in init. callback = new ActivityLifeCycleAdapter() { @Override public void onActivityCreate(Activity activity, Bundle savedInstanceState) { ScrapLog.i("callback onActivityCreate",""); } @Override public void onActivityPostCreate(Activity activity, Bundle savedInstanceState) { ScrapLog.i("callback onActivityPostCreate",""); } @Override public void onActivityStart(Activity activity) { ScrapLog.i("callback onActivityStart",""); } @Override public void onActivityResume(Activity activity) { ScrapLog.i("callback onActivityResume",""); } @Override public void onActivityPause(Activity activity) { ScrapLog.i("callback onActivityPause",""); } @Override public void onActivityStop(Activity activity) { ScrapLog.i("callback onActivityStop",""); } @Override public void onActivityDestroy(Activity activity) { ScrapLog.i("callback onActivityDestroy",""); } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { ScrapLog.i("callback onActivitySaveInstanceState",""); } @Override public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) { ScrapLog.i("callback OnActivityResult",""); } //....etc methods }; // register global life cycle callback ScrapHelper.registerActivityLifeCycleCallback(callback); } @Override protected void onAttach() { // use dialog to help you test it, or else you will see nothing it this. getViewHelper().setOnClickListener(R.id.bt_1, new View.OnClickListener() { @Override public void onClick(View v) { testLifeCycle(); } }).setVisibility(R.id.bt_2, false).setVisibility(R.id.bt_3,false) .setText(R.id.bt_1,"Click this button to show auto Dialog and test life cycle"); } @Override protected void onDetach() { if(callback!=null) { ScrapHelper.unregisterActivityLifeCycleCallback(callback); callback = null; } } private void testLifeCycle() { DialogUtil.showProgressDialog((Activity) getContext()); new Timer().schedule(new TimerTask() { @Override public void run() { DialogUtil.dismiss(); } }, 2000); } @Override protected void onActivityCreate(Bundle saveInstanceState) { ScrapLog.i("onActivityCreate",saveInstanceState.toString()); } @Override protected void onActivityPostCreate(Bundle saveInstanceState) { ScrapLog.i("onActivityPostCreate",saveInstanceState.toString()); } @Override protected void onActivityStart() { ScrapLog.i("onActivityStart",""); } @Override protected void onActivityResume() { ScrapLog.i("onActivityResume",""); } @Override protected void onActivityPause() { ScrapLog.i("onActivityPause",""); } @Override protected void onActivityStop() { ScrapLog.i("onActivityStop",""); } @Override protected void onActivityDestroy() { ScrapLog.i("onActivityDestroy",""); } }