根據產品及測試需求,每次測試後需要來回切換環境測試,每次都需要重新設置請求域名環境然後進行打包,很麻煩!!!就想設計一鍵切換APP環境地址:
首先在應用中找一個觸發事件(本人選擇了設置長按監聽事件,彈框選擇需要切換的環境地址),並且設置一下只在debug運行模式下執行 (防止打生產環境上線包後,忘記關閉)
//// 長按設置事件 切換環境彈框
llSetting.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if (BuildConfig.DEBUG)//debug才能切換
new ChooseIPDialog(getActivity()).show();//選擇環境dialog彈框
return true;
}
});
彈框中點擊事件
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,是不是很簡單!如果覺得簡單 還不錯就給個贊 謝謝!