標籤:
Base介面
IBaseActivity
package liu.basedemo.base;/** * 基類介面 * Created by 劉楠 on 2016/7/28 0028.23:05 */public interface IBaseActivity { /** * 返回視圖的布局(setContentView中使用) * @return 返回視圖的布局 */ int bindLayout(); /** * 初始化View(onCreate方法中調用) */ void initView(); /** * 初始化資料(onCreate方法中調用) */ void initData(); /** * 初始監聽器(onCreate方法中調用) */ void initListener(); /** * 暫停恢複重新整理相關操作(onPause方法中調用) */ public void pause(); /** * 暫停恢複重新整理相關操作(onResume方法中調用) */ public void resume(); /** * 暫停恢複重新整理相關操作(onStop方法中調用) */ public void stop(); /** * 銷毀,釋放資源等操作在(onDestory方法中讞用) */ public void destory();}
BaseActivity
package liu.basedemo.base;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.annotation.LayoutRes;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.Window;import java.lang.ref.WeakReference;import liu.basedemo.MyApplication;import liu.basedemo.R;/** * Activity基類 * Created by 劉楠 on 2016/7/28 0028.23:02 */public abstract class BaseActivity extends AppCompatActivity implements IBaseActivity { /** * 全域應用 */ MyApplication mMyApplication; /** * 弱引用 */ WeakReference<Activity> mTask; @Override public void setContentView(@LayoutRes int layoutResID) { super.setContentView(layoutResID); } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); /** * 設定布局 */ setContentView(bindLayout()); /** * 抽象方法 */ initView(); initData(); initListener(); mMyApplication =MyApplication.getInstance(); mTask = new WeakReference<Activity>(this); /** * 新增工作棧 */ mMyApplication.pushTask(mTask); } @Override public void pause() { super.onPause(); } @Override public void stop() { super.onStop(); } @Override public void destory() { super.onDestroy(); /** * 過場動畫 */ overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); /** * 移除任務棧 */ mMyApplication.removeTask(mTask); } @Override public void startActivity(Intent intent) { super.startActivity(intent); /** * 過場動畫 */ overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); } @Override public void startActivityForResult(Intent intent, int requestCode) { super.startActivityForResult(intent, requestCode); /** * 過場動畫 */ overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); }}
Android 中BaseActivty