2013-03-24 3 views
0

CountDownTimer가 끝나면 CountDownTimer가 일부 UI 요소를 업데이트하지만 카운트 다운 중간에 구성 변경이 발생하여 작업을 다시 생성해야한다고 가정 해 보겠습니다. .구성 변경 후에도 계속 CountDownTimer를 만들려면 어떻게합니까?

public class MyActivity extends Activity { 

    private TextView textView; 

    .... 

    public void onButtonClicked(View view) 
    { 
     // start CountDownTimer 
     new CountDownTimer(10000, 10000) { 
      public void onTick(long millisUntilFinished) { 
       // do nothing 
      } 
      public void onFinish() { 
       textView.setText("Hello World!"); 
      } 
     }.start(); 
    } 

} 

은 내가 CountDownTimer가 완료되면, 그것은 활동의 텍스트 뷰가 당신의 수가 파일에 마무리인지 아닌지

답변

0

에서

@Override 
public Object onRetainNonConfigurationInstance() { 
final MyDataObject data = collectMyLoadedData(); 
return data; 
} 

는 I는 pausable CountDownTimer를 구현 onPause()/onResume()가 호출 될 때 재개하고 setRetainInstance (TRUE)으로 프래그먼트에 참조/일시 정지했다. 화면 회전 또는 구성 변경 후 진행 상태를 유지할 수 있습니다.

1

http://developer.android.com/guide/topics/resources/runtime-changes.html

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
super.onSaveInstanceState(savedInstanceState); 
// Save UI state changes to the savedInstanceState. 
// This bundle will be passed to onCreate if the process is 
// killed and restarted. 
savedInstanceState.putString("timer",1223); 

// etc. 
} 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
super.onRestoreInstanceState(savedInstanceState); 
// Restore UI state from the savedInstanceState. 
// This bundle has also been passed to onCreate. 
time = savedInstanceState.getString("time"); 
} 

데이터베이스 또는 arraylist의 데이터와 같은 대규모 데이터 세트가있는 경우. 에서 onCreate

final MyDataObject data = (MyDataObject) getLastNonConfigurationInstance(); 
if (data == null) { 
    data = loadMyData(); 
}