Вы можете создать класс Application, который можно использовать в качестве держателя глобального состояния.
Вот пример кода:
public class SampleApplication extends Application {
private static String username;
private static String password;
@Override
public void onCreate() {
super.onCreate();
username="";
password="";
}
public static String getUsername() {
return username;
}
public static void setUsername(String username) {
SampleApplication.username = username;
}
public static String getPassword() {
return password;
}
public static void setPassword(String password) {
SampleApplication.password = password;
}
}
После объявления статических методов и переменных вы должны определить свой класс приложения в вашем AndroidManifest.xml. Используйте атрибут android:name
тега application
для определения имени вашего класса.
Вот еще пример кода:
<application
android:name=".SampleApplication"
android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SampleApp"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Ваш класс приложения поделится всеми событиями жизненного цикла как события и будет разрушен при выходе из приложения.
Вы можете получить доступ к переменным приложения с помощью статических методов получения и установки из любого действия или службы:
SampleApplication.setUsername("");
String currentUserName=SampleApplication.getUsername();
SampleApplication.setPassword("");
String currentPassword=SampleApplication.getPassword();
Вы также можете вместо обычного класса выбрать обычный класс Application
Альтернатива тому же примеру:
public class SampleApplication extends Application {
private String username;
private String password;
@Override
public void onCreate() {
super.onCreate();
username="";
password="";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
SampleApplication.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
SampleApplication.password = password;
}
}
Вы можете получить к ним доступ с помощью:
((SampleApplication)getApplication()).getUsername();