2012-02-11 2 views
4

내 응용 프로그램에는 하나의 메소드를 통해 동적으로 계산되는 하나의 변수 값을 유지하는 서비스 클래스 (활동 아님) 만 있습니다. 그렇다면 더 많은 비교를 위해 그 가치를 구해야합니다. 예를 들어 :변수 값 유지

class MyClass extends Service{ 

static int number1; 


private void Method(){ 
int number 2; 

/// some calculations for number2 /// 

if number2 != number1 { number1 = number2 } 

} 

나는 내 응용 프로그램이 계산했다는 다른 변수 (숫자 2)에 해당 변수 (숫자 1)을 비교해야합니다. 이것은 잘 작동하지만 안드로이드 OS가 내 서비스를 죽이고 어떤 의도로 서비스를 시작하면 (전화 재부팅 후), number1의 값이 손실되고 비교를 위해 사용할 수 없습니다. 그렇게하는 방법? 나는 서비스를 죽인 후 number1의 가치를 유지할 수있는 간단한 TXT 파일을 작성하려고 생각했다.

다른 방법이 있습니까?

답변

3

가장 빠른 방법은 변수 값을 SharedPreferences에 저장하고 나중에 사용할 수 있도록 검색하는 것입니다.

이 코드가 활동을위한 android developer's page에서 가져온 것입니다하지만 당신은
+0

고마운 친구, 정확히 내가 필요한 것 :) 직장 잘! –

1

당신은 안드로이드 사용자가 일반적으로 그래서 가 데이터베이스에 계속 서비스를 서비스 및 응용 프로그램을 모니터링하고 닫을 수있는 서비스가 시작될 때 그래서 나중에 저장된 값을 확인할 수 있습니다 파일이나 데이터베이스에 값을 저장해야합니다.

+0

당신이 대답을 bo2bo2 감사를 변경하여 쉽게 서비스에 적응할 수
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(); } } 

, 내가 사용한 적이 된 SharedPreferences : 예를 들어

, 더 쉬워! –