2016-02-15 4 views
0

Я пытаюсь определить, активно ли приложение Android в настоящее время или нет, и я подумал, что смогу это сделать, прослушивая pause и resume событиями Ti.App. Однако эти события никогда не будут срабатывать, когда приложение будет перенесено на задний план или перенесено на передний план.Android, как обнаружить, когда приложение приостановлено и возобновлено

Я пытался слушать события, как это:

Ti.App.addEventListener('resume', function(){ 
    Ti.API.log("resume event triggered"); 
}); 
Ti.App.addEventListener('pause', function(){ 
    Ti.API.log("paused event triggered"); 
}); 

Эти события никогда не называют. После поиска я понял, что у многих других была такая же проблема, но я не мог найти ничего подходящего для последних версий Appcelerator.

Как сделать это «правильно»?

+0

просто еще одна идея/путь: вы можете установить логическое 'isActivityActive' в всех activitiy в' onResume() 'и сохранить их в' sharedPreferences'. Затем вы можете использовать оператор 'or', чтобы определить, активна ли какая-либо активность. Если у вас активная активность, значит, ваше приложение работает в настоящее время. Не забудьте установить booleans на 'false' в методе' onPause() 'всей активности. – eren130

ответ

0

Я разработал приложение для Android, которое на операции onResume вызывает функцию. Поэтому я думаю, что это аналогичная ситуация.

Я использовал этот код:

$.nameWin.addEventListener('open', function() { 
    if (!$.nameWin.activityListenerLoaded) { 
     var activity = $.nameWin.activity; 
     ['resume'].forEach(function(e) { 
      activity.addEventListener(e, function() { 
       //doSomething 
      }); 
     }); 
     $.nameWin.activityListenerLoaded = true; 
    } 
}); 

Таким образом, вы можете вызвать функцию или сделать что-то каждый раз, когда ваше резюме деятельности.

Дайте мне знать.

С уважением

4

События, которые вы слушаете, являются только iOS.

Активность в режиме onPause и onResume для Android может быть полезна, если ваше приложение - только одно действие.

Обычно это не тот случай. This - лучшее решение, которое я нашел до сих пор.

+0

палец вверх для этого сообщения, для меня модуль «bencoding.android.tools» спас меня, я настоятельно рекомендую его. – TheFuquan

+0

Да, это лучшее решение. Прекрасно подходит для меня. – Wikki

0

Попробуйте прослушивать события onPause/onResume в основной «активности».

http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Activity

например:

var main_activity = Ti.Android.currentActivity; 
// var intent = main_activity.getIntent(); 
// var uri = intent.getData(); 

main_activity.addEventListener('pause', function(e) { 
    console.log('ANDROID APP PAUSED'); 
}); 
main_activity.addEventListener('resume', function(e) { 
    // uri = intent.getData(); 
    console.log('ANDROID APP RESUMED'); 
    return; 
}); 
Смежные вопросы