我正在尝试检测Android应用当前是否处于活动状态,并认为我可以通过收听pause
的{{1}}和resume
事件来执行此操作。但是,当应用程序被推送到后台或被带到前面时,这些事件永远不会触发。
我试图听取这样的事件:
Ti.App
永远不会调用这些事件。在搜索之后,我发现很多其他人都有同样的问题,但我找不到任何与最新版Appcelerator相关的内容。
如何做到这一点"正确"?
答案 0 :(得分:4)
答案 1 :(得分: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;
}
});
通过这种方式,您可以在每次活动恢复时调用函数或执行某些操作。
让我知道。
此致
答案 2 :(得分: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;
});
答案 3 :(得分:0)
从Titanium SDK 3.2.0开始工作:
Ti.Android.currentActivity.addEventListener('userleavehint', function(e){
self.onAppPaused();
});
Ti.Android.currentActivity.addEventListener("newintent",function(){
self.onAppResumed();
});
答案 4 :(得分:0)
我长期以来一直在使用volatile
模块。
我现在已经构建并发布了Hyperloop模块:
https://github.com/dieskim/Appcelerator.Hyperloop.appPauseResume
跨平台Hyperloop模块,用于检测iOS和Android上的app是暂停还是恢复
示例:
bencoding.android.tools