我正在参与掘金新人创作活动,一起开启写作之路
为啥需要全局变量?
在有些时刻需要访问服务器端的接口,如果每次都在活动里定义URL字符串来存储ip地址,那当换了一个局域网的网段时,所有的Activity的ip地址都得洗一遍,这是比较麻烦的。
如何解决这种情况?
创建一个Myapplication类
//声明一个变量
public String URL;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
setURL("http://*.*.*.*:8000");
}
public String getURL() {
return URL;
}
public void setURL(String URL) {
this.URL = URL;
}
在注册清单manifest.xml,application的name属性中拿到它
<application
android:name=".Myapplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
最后使用的时候:
private String URL;
private Myapplication myapplication;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
getSupportActionBar().hide();
//获得对象
myapplication = (Myapplication) getApplication();
URL=myapplication.getURL();
initView();
}