BaseActivity 框架搭建

package com.txooo.base;

import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;

import com.txooo.MyApplication;
import com.txooo.R;
import com.txooo.account.baidufacelogin.APIService;
import com.txooo.account.login.LoginActivity;
import com.txooo.ui.ToastUtils;
import com.txooo.ui.dialog.WaitDialog;
import com.txooo.ui.view.SlidingLayout;
import com.txooo.utils.XGPushUtils;
import com.txooo.utils.tools.AppSetting;
import com.umeng.analytics.MobclickAgent;


/**
 * Created by wwb on 2017/1/3.
 * 3
 */
public class BaseActivity extends AppCompatActivity {

    private WaitDialog wd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AppManager.addActivity(this, getClass());
//        initState();

        // 禁止所有的Activity 横屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        if (enableSliding()) {
            SlidingLayout rootView = new SlidingLayout(this);
            rootView.bindActivity(this);
        }

    }

    //这是防止 系统字体影响应用字体的代码
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (newConfig.fontScale != 1)//非默认值
            getResources();
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public Resources getResources() {
        Resources res = super.getResources();
        if (res.getConfiguration().fontScale != 1) {//非默认值
            Configuration newConfig = new Configuration();
            newConfig.setToDefaults();//设置默认
            res.updateConfiguration(newConfig, res.getDisplayMetrics());
        }
        return res;

    }


    private void initState() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //5.0及以上
            View decorView = getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            decorView.setSystemUiVisibility(option);
            getWindow().setStatusBarColor(getResources().getColor(R.color.theme_color));
        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
            WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
            localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
        }
    }

    public void showLoading() {
        if (wd != null) {
        } else {
            wd = new WaitDialog(this);
            wd.setOnCancelListener(new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    wd.dismiss();
                    //   finish();
                }
            });
        }
        if (!wd.isShowing()) {
            wd.show();
        }
    }

    public void hideLoading() {
        if (wd != null && wd.isShowing()) {
            wd.dismiss();
        }
    }

    /**
     * 是否滑动关闭页面
     *
     * @return
     */
    protected boolean enableSliding() {
        return true;
    }

    /**
     * 无参数的跳转
     *
     * @param clazz 传递进来的要跳转的目的地
     */
    public void startActivity(Class<?> clazz) {
        Intent intent = new Intent(this, clazz);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out);
    }

    /**
     * Toast
     *
     * @param msg
     */
    public void t(String msg) {
        ToastUtils.t(BaseActivity.this, msg);
    }


    public void onResume() {
        super.onResume();
        MobclickAgent.onPageStart(getClass().getSimpleName()); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写。"SplashScreen"为页面名称,可自定义)
        MobclickAgent.onResume(this);          //统计时长
    }

    public void onPause() {
        super.onPause();
        MobclickAgent.onPageEnd(getClass().getSimpleName()); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息。"SplashScreen"为页面名称,可自定义
        MobclickAgent.onPause(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AppManager.removeActivity(this);

        //防止弹窗没有父窗体的异常
        hideLoading();
    }


    public void exitAccount() {
        AppSetting.getInstance().setIsLogin(false);
        AppSetting.getInstance().setUserId("");
        AppSetting.getInstance().setToken("");
        AppSetting.getInstance().setBrandId("");
        AppSetting.getInstance().setPushTag("");//设置人脸id为空
        APIService.getInstance().setGroupId("");
        //清空推送tag
        XGPushUtils.unRegistPush(AppSetting.getInstance().getPushTag());
        //友盟统计退出登录
        MobclickAgent.onProfileSignOff();
        AppManager.removeAllActivity();
        Intent intent = new Intent(MyApplication.getInstance(), LoginActivity.class);
        intent.putExtra("isReload", true);
        startActivity(intent);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值