Android 中BaseActivty
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); } }