2015-04-04 4 views
0

У меня есть два сервиса в моем приложении: один для CountDownTimer и один для Window Manager. Мое основная деятельность:Управление смены ориентации

public class MainActivity extends ActionBarActivity { 

    // Variables 


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

     // some code here 

    } 



// Broadcase reciever for Countdown Timer 
    private BroadcastReceiver br = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      updateGUI(intent); // or whatever method used to update your GUI 
           // fields 
     } 
    }; 

    private void updateGUI(Intent intent) { 
     if (intent.getExtras() != null) { 
      long millisUntilFinished = intent.getLongExtra("countdown", 0); 
      HeadService.textView.setText("" + millisUntilFinished/1000); 
      Log.i("YOLO", "Countdown seconds remaining: " + millisUntilFinished 
        /1000); 
     } 

    } 


// Registrating and Starting services in onStart() 
    @Override 
    public void onStart() { 
     // TODO Auto-generated method stub 

     super.onStart(); 
     startHeadService(); 

     registerReceiver(br, new IntentFilter(BroadcastService.COUNTDOWN_BR)); 

     Log.i("Check", "Registered broacast receiver"); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 

    } 

    @Override 
    public void onPause() { 
     super.onPause(); 

    } 

    @Override 
    public void onStop() { 
     try { 
      unregisterReceiver(br); 
      stopHeadService(); 
     } catch (Exception e) { 
      // Receiver was probably already stopped in onPause() 
     } 
     super.onStop(); 
    } 

    @Override 
    public void onDestroy() { 
     stopService(new Intent(this, BroadcastService.class)); 
     stopHeadService(); 
     Log.i("Check", "Stopped service"); 
     super.onDestroy(); 
    } 

    private void startHeadService() { 

     startService(new Intent(this, HeadService.class)); 
    } 

    private void stopHeadService() { 

     stopService(new Intent(this, HeadService.class)); 
    } 
} 

Когда я изменяю ориентацию, мои услуги прекращаются, и новые услуги начинаются снова. Поэтому в основном я хочу знать, с чего начать и прекратить мои услуги, чтобы он продолжал работать даже в изменении ориентации. Кроме того, я знаю, какой жизненный цикл активности наблюдается при изменении ориентации отсюда Which activity method is called when orientation changes occur?, и я просто не понимаю, что мне делать. Заранее спасибо.

ответ

2

метод onCreate() вызывается при изменении ориентации активности.

Чтобы избежать этого добавьте следующий код в вашей деятельности в файле манифеста:

... андроида: configChanges = «ориентация | Размер экрана»

+0

мне нужно сделать, чтобы положить это в разделе ? – Ajeet

+0

Удивительный, я не думал, что это так просто, спасибо @Hello World :) – Ajeet

+0

Например: <активность android: label = "... ..." android: configChanges = "orientation | screenSize" />

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