2014-02-10 2 views
1

Я пытаюсь использовать метод onStop(), но код не выполняется, когда он вызывается.
Я использую TabHost для перехода от одной операции к другой.Onstop() не работает

Этот код должен работать, когда я перехожу на другую вкладку.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_battery); 

    SharedPreferences prefs = PreferenceManager 
      .getDefaultSharedPreferences(BatteryActivity.this); 
    prefs.edit().putInt("BatteryActivity", Answer).apply(); 
    prefs.edit().putInt("Battery", 10).apply(); 


} 
@Override 
protected void onStop() { 
    super.onStop(); 
    Toast.makeText(getApplicationContext(), "600", Toast.LENGTH_LONG).show(); 
    ((MyApplication) BatteryActivity.this.getApplication()).setAnswerList(200); 
    int radioButtonID = radioGroup.getCheckedRadioButtonId(); 
    View radioButton = radioGroup.findViewById(radioButtonID); 
    int idx = radioGroup.indexOfChild(radioButton); // ID of selected radiobutton 

    switch(idx){ 
     case R.id.RadioButton11: 

       BatteryActivity.this.Answer = 23 ; 

       break; 

     case R.id.RadioButton08: 
       BatteryActivity.this.Answer = 24 ; 

       break; 

     } 
+0

Почему вы хотите использовать 'onStop()' явно? – nKn

+2

не гарантирует вызов метода 'onStop', используйте' onPause' вместо этого –

+0

, вы должны использовать onResume() и onPause(). http://developer.android.com/reference/android/app/Activity.html – midhunhk

ответ

0

Ну, я нашел эту проблему во многих формах. Кажется, что вы хотите выполнять некоторую работу, когда изменяется вкладка. Предпочитает использовать OnTabChangeListener. Вот простой пример.

tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { 
    @Override 
    public void onTabChanged(String tabId) { 
     Activity currentActivity = getCurrentActivity(); 
     if (currentActivity instanceof XYZActivity) { 
      int ans = ((XYZActivity) currentActivity).getAnswer();// this method is written in XYZActivity 
     }  
    } 
}); 

Это только для того, чтобы дать вам представление. Фактическое решение может быть предоставлено, если вы разрабатываете фактический сценарий.

Смежные вопросы