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); } }
BaseActivity 框架搭建
最新推荐文章于 2024-08-15 13:57:31 发布