В главной активити в методе onCreate я запускаю свой сервис. Далее сервис работает, но если я поворачиваю экран, то запуски сервиса накапливаются и потом друг за другом начинают выполняться, а хотелось бы чтобы только 1 раз при запуске главной активити. Я в сервисе в методе onStartCommand, чтобы не реагировать на повторные вызовы, выполняю работу потока 1 раз
if(startId == 1) { // не реагировать на повторные вызовы
mTask.execute();
}
Это правильно или как нужно делать, т.к. я новичок мне это не известно, кто знает, помогите пожалуйста?
// главная активити
public class mactiv extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
startService(new Intent(this, mservis.class));
}
}
// сервис
public class mservis extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
AsyncTask<Void, Integer, Void> mTask = new AsyncTask<Void, Integer, Void>() {
@Override
protected Void doInBackground(Void... params) {
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
stopSelf();
}
};
if(startId == 1) { // не реагировать на повторные вызовы, если не выполнять проверку, то поток при смене ориентации вызовется повторно т.к. сервис вызывается в методе onCreate главной активити
mTask.execute();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
}
}