项目开发过程中,后台的接口域名可能会分生产环境和测试环境,生产环境是app正式环境,测试环境是开发过程中使用的环境,接口中有假数据,供我们开发人员使用。在开发过程中有这样一种情况会出现,我们需要生产和测试环境切换来排查问题,常规做法,就需要更改接口域名地址,然后重新编译运行app,那我们可不可以在app运行中直接切换环境呢?
答案是可以的。
首先说一下大概思路
我们将接口的域名如www.huiguangjie.cn存放到SharePreference中,然后动态改变此域名来实现切换环境。
下面详细说一下
1.在应用的application中,将域名存到SharePreference,这样可以保证每次app启动都environment里都是http://www.huiguangjie.cn
//默认为生产环境 为了可以切换环境
SharedPerferenceUtils.saveString(this, "environment","http://www.huiguangjie.cn");
2.Constant类中保证url是从SharePreference获取的,这样默认环境就是生产环境了public String url= SharedPerferenceUtils.getString(context, "environment");
public final String Regist_send_sms = url + "/merchant/join/sms/send/norandom";
3.动态切换环境,我们放两个button,分别是切换为生产和测试环境,点击事件中,将environment改为测试环境的域名
SharedPerferenceUtils.saveString(mContext, "environment", "http://www.huiguangjie.test.cn");
4.退出app,重启app,就实现了动态切换环境了,是不是很简单!
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);