Android 保持变量值
我的应用程序只有一个服务类(不是活动),在该类中,我保留通过一个方法动态计算的一个变量的值。然后我需要保存该值以便进一步比较。 例如:Android 保持变量值,android,service,Android,Service,我的应用程序只有一个服务类(不是活动),在该类中,我保留通过一个方法动态计算的一个变量的值。然后我需要保存该值以便进一步比较。 例如: class MyClass extends Service{ static int number1; private void Method(){ int number 2; /// some calculations for number2 /// if number2 != number1 { number1 = number2 } } pub
class MyClass extends Service{
static int number1;
private void Method(){
int number 2;
/// some calculations for number2 ///
if number2 != number1 { number1 = number2 }
}
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
我需要将该变量(number1)与应用程序计算的其他变量(number2)进行比较。这很好,但当Android操作系统终止我的服务,并出于某种目的启动该服务时(比如在手机重启后),number1的值就丢失了,我无法用它进行比较。
那么怎么做呢?我想写一个简单的TXT文件,在终止服务后,我可以在其中保留number1的值
还有其他方法吗?您必须将值保存到文件或数据库中,因为Android用户通常监视服务和应用程序,并可以关闭服务 所以
将其保存在数据库中,以便以后启动服务时可以检查保存的值。最快的方法是将变量的值保存在SharedReferences中,并检索它以供以后使用 例如:
class MyClass extends Service{
static int number1;
private void Method(){
int number 2;
/// some calculations for number2 ///
if number2 != number1 { number1 = number2 }
}
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
此代码取自用于活动的代码,但您可以通过更改它来轻松地在服务中修改它谢谢,伙计,这正是我所需要的:)工作正常!谢谢你的回答,我使用了共享参考,这更简单!