Как разработчик Unity3D, я создал приложение и экспортировал его в Android Studio.Мой клиент просит меня вернуть это приложение на передний план после 10 секунд бездействия пользователя (в случае, если пользователь открывает другое приложение).Я попытался создать службу, которая запускается с помощью функции OnPause моей UnityPlayerActivity.Затем служба обнаружит бездействие пользователя и снова запустит мое приложение (вернув его на передний план).Сначала я пытался использовать Time.Schedule для запуска моего приложения через 10 секунд, несмотря ни на что, но каждый раз, когда приложение приостанавливается (переходит в фоновый режим), оно запускает службу, а затем происходит сбой.Вопрос: есть ли простой способ сделать это?Я не являюсь разработчиком Android Java (знаю только основы), и я борюсь с этой частью.
Я пытаюсь создать этот сервис, а затем пытаюсь запустить его из функции onPause ()в моей деятельности.Когда я приостанавливаю приложение на моем телефоне, приложение вылетает.Может кто-нибудь сказать мне, если я на правильном пути и, пожалуйста, помогите мне?
public class ReturnToForeground extends Service {
public ReturnToForeground() {
}
// constant
public static final long NOTIFY_INTERVAL = 10 * 1000; // 10 seconds
// run on another Thread to avoid crash
private Handler mHandler = new Handler();
// timer handling
private Timer mTimer = null;
Intent intent = new Intent(this, UnityPlayerActivity.class);
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// cancel if already existed
if (mTimer != null) {
mTimer.cancel();
} else {
// recreate new
mTimer = new Timer();
}
// schedule task
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
return super.onStartCommand(intent, flags, startId);
}
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
// do action
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
}
});
}
}
}