[英]Android MQTT client app not receiving publications when app paused then resumed
[英]Android how to detect when app is paused and resumed
我試圖檢測Android應用程序當前是否處於活動狀態,並認為可以通過監聽Ti.App
的pause
和resume
事件來Ti.App
。 但是,將應用程序推送到后台或放在最前面時,這些事件將永遠不會觸發。
我試着聽這樣的事件:
Ti.App.addEventListener('resume', function(){
Ti.API.log("resume event triggered");
});
Ti.App.addEventListener('pause', function(){
Ti.API.log("paused event triggered");
});
這些事件永遠不會被調用。 在搜索之后,我發現其他許多問題也有相同的問題,但是我找不到與最新版本的Appcelerator相關的任何內容。
應該如何“適當地”做到這一點?
我開發了一個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;
}
});
這樣,您可以在每次活動恢復時調用函數或執行某些操作。
讓我知道。
問候
嘗試收聽主要“活動”中的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;
});
Titanium SDK 3.2.0的工作:
Ti.Android.currentActivity.addEventListener('userleavehint', function(e){
self.onAppPaused();
});
Ti.Android.currentActivity.addEventListener("newintent",function(){
self.onAppResumed();
});
我已經使用了bencoding.android.tools
模塊很長時間了。
我現在已經為此構建並發布了Hyperloop模塊:
https://github.com/dieskim/Appcelerator.Hyperloop.appPauseResume
跨平台Hyperloop模塊,用於檢測應用程序是否在iOS和Android上暫停或恢復
例:
// require appPauseResumeModule
var appPauseResume = require('appPauseResume');
// run appPauseResume and add resume and pause callbacks
appPauseResume({pause: function(){
Ti.API.info("appPauseResume - pause");
},
resume: function(){
Ti.API.info("appPauseResume - resume");
},
setIntervalTime: 1000, // Optional - Default: 1000 miliseconds (1 second)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.