Мое приложение Android запускает сервис перед отображением макета

61
4

Я пишу приложение для Android, вот код

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(getBaseContext(), ttt.class));
}

ttt - это класс extends Service, который продолжает отображать Dialog каждые 15 минут, когда он запускается, он сначала ждет 15 минут и отображает диалог, затем отображает макет.

setContentView(R.layout.activity_main); до startService(new Intent(getBaseContext(), ttt.class)); почему он сначала не отображает макет, но сначала запустите службу?

Как я могу сначала отобразить макет, затем через 15 минут и отобразить диалог?

спросил(а) 2021-01-19T17:17:50+03:00 2 месяца, 3 недели назад
1
Решение
88

Прежде всего, переименуйте свой сервис ttt на свое собственное имя. Вы можете запустить AlarmManager внутри вашего onCreate.


Intent intent = new Intent(getBaseContext(), ttt.class);
PendingIntent pintent = PendingIntent.getService(getBaseContext(), 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 15*60*1000, pintent);

ответил(а) 2021-01-19T17:17:50+03:00 2 месяца, 3 недели назад
44

Для этого вы можете использовать обработчик. попробуйте что-то вроде:

new Handler().postDelayed(new Runnable() {
@Override
public void run() {

Intent i=new Intent(MainActivity.this,ttt.class);
startActivity(i);
}
}, 900000);

Надеюсь, поможет

ответил(а) 2021-01-19T17:17:50+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема