Application对象非常适合用于存储一些与整个应用相关数据,例如应用版本,应用登录账户,数据缓存等。
如activity的切换是很频繁的,差不多可以和一个网站中不同网页之间的切换一样,那么不同的activity之间需要存储公共信息(如只有一个当前登录用户)以及数据传递等。
利用Application对象存储登录用户信息的方法,可以很方便的不同activity之间获取登录用户信息。
首先,新建一个java类继承Application类:BaseApplication.java
import android.app.Application;
public class BaseApplication extends Application {
private String login_user_name = "";
public String getLoginUserName() {
return login_user_name;
}
public void setLoginUserName(String login_user_name) {
this.login_user_name = login_user_name;
}
}
然后,在AndroidManifest.xml中指定应用的application对象
......
<application
android:name=".BaseApplication"
......
最后,在activity中使用application对象, 使用Activity的getApplication()方法。
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
private BaseApplication mApplication;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取整个应用的Application对象
// 在不同的Activity中获取的对象是同一个
mApplication = (BaseApplication) getApplication();
}
/**
* 一般只有在登录界面中设置登录用户信息,在其他的Activity中
* 只要通过Application对象就可以获取登录用户信息
*/
......
// 将登录用户信息保存到Application对象中
mApplication.setLoginUserName("登录名");
//获取登录名
mApplication.getLoginUserName();
}