Android-APP内选择切换开发环境测试环境阿里测试环境生产环境记录一下
目录
Android APP内选择切换开发环境、测试环境、阿里测试环境、生产环境记录一下
根据产品及测试需求,每次测试后需要来回切换环境测试,每次都需要重新设置请求域名环境然后进行打包,很麻烦!!!就想设计一键切换APP环境地址:
首先在应用中找一个触发事件(本人选择了设置长按监听事件,弹框选择需要切换的环境地址),并且设置一下只在debug运行模式下执行 (防止打生产环境上线包后,忘记关闭)
长按设置事件 切换环境弹框
llSetting.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if (ConfigUtil.isDebugApp)//debug才能切换
new ChooseIPDialog(getActivity()).show();//选择环境dialog弹框
return true;
}
});
判断当前APP是否debug模式 configUtil 工具类
/**
* @param context
* @return 判断APP是否是debug模式
*/
public static boolean isDebugApp(Context context) {
try {
ApplicationInfo info = context.getApplicationInfo();
return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
} catch (Exception x) {
return false;
}
}
弹框中点击事件
tvTest.setOnClickListener(new View.OnClickListener() {
@SingleClick
@Override
public void onClick(View v) {
SPUtils.putStringValue(Constants.IpUrl, "http://180.167.199.230:7083");//保存切换测试环境后地址
reStartApp();//重启
dismiss();//关闭弹框
}
});
其它开发测试环境事件一样 地址修改一下就可以了
public void reStartApp() {//重启应用
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent LaunchIntent=mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName());
LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(LaunchIntent);
ConfigUtil.setIsLogin(false);//切换环境后 登陆会失效 我在这里处理标记(未登录)
MyApp.getCustomApp().exitApp();
System.exit(0);
}
}, 100);
}
在这之前会设置一个默认的请求路径:
public static final String baseUrl = “http://180.167.199.230:7083”;
然后再公共请求类中获取当前的环境地址
String ipUrl= ConfigUtil.getIpUrl();//获取当前请求环境路径地址IP
替换公共请求头部 拼接请求路径这里就省了
public static String getIpUrl(){//获取请求路径IP
String url = SPUtils.getStringValue(Constants.IpUrl,"");
if (StringUtil.isEmpty(url)){//判断不为空
url=HttpConfig.baseUrl;//为空设置默认请求路径
}
return url;
}
ok,是不是很简单!如果觉得简单 还不错就给个赞 谢谢!