Fork me on GitHub

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);
    }
}

 

 
 
posted @ 2016-07-29 23:05  森林森  阅读(622)  评论(0编辑  收藏  举报