package com.hpw.myapp.ui.tv.activity; import android.content.pm.ActivityInfo; import android.os.Handler; import android.os.Looper; import android.os.Message; import com.hpw.mvpframe.base.CoreBaseActivity; import com.hpw.mvpframe.base.CoreBaseModel; import com.hpw.mvpframe.base.CoreBasePresenter; import com.hpw.mvpframe.utils.NetUtils; import com.hpw.myapp.ui.tv.contract.TvContract; /** * Created by hpw on 16/12/3. */ public abstract class BaseTvShowActivity<T extends CoreBasePresenter, E extends CoreBaseModel> extends CoreBaseActivity<T, E> implements TvContract.TvShowView { protected boolean mIsActivityPaused = true; @Override protected void onResume() { super.onResume(); mIsActivityPaused = false; } @Override protected void onPause() { super.onPause(); mIsActivityPaused = true; } @Override public void onBackPressedSupport() { if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); return; } super.onBackPressedSupport(); } protected void showToastTips(final String tips) { if (mIsActivityPaused) { return; } showToast(tips); } private static final int MESSAGE_ID_RECONNECTING = 0x01; private void sendReconnectMessage() { showToastTips("正在重连..."); onReConnecting(); mHandler.removeCallbacksAndMessages(null); mHandler.sendMessageDelayed(mHandler.obtainMessage(MESSAGE_ID_RECONNECTING), 500); } protected Handler mHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { if (msg.what != MESSAGE_ID_RECONNECTING) { return; } if (mIsActivityPaused) { finish(); return; } if (!NetUtils.isConnected(mContext)) { sendReconnectMessage(); return; } toPrepare(); } }; protected abstract void toPrepare(); }