我正在为Android平台构建Titanium模块,我想使用模块的生命周期事件(即onDestroy,onPause等)。我尝试通过覆盖模块类中的这些生命周期事件来使用它们,如下所示:
@Kroll.module(name="custom", id="vub.ac.be.custom")
public class CustomModule extends KrollModule {
private static final String TAG = "customModule";
@Kroll.onAppCreate
public static void onAppCreate(TiApplication app) {
}
private void destroyServices(){
//...
}
@Override
public void onStop(Activity activity) {
Log.d(TAG, "STOPPING");
destroyServices();
super.onStop(activity);
}
@Override
public void onPause(Activity activity) {
Log.d(TAG, "[MODULE LIFECYCLE EVENT] pause");
super.onPause(activity);
}
@Override
public void onResume(Activity activity) {
Log.d(TAG, "[MODULE LIFECYCLE EVENT] resume");
super.onResume(activity);
}
@Override
public void onDestroy(Activity activity) {
Log.d(TAG, "[MODULE LIFECYCLE EVENT] destroy");
destroyService();
super.onDestroy(activity);
}
}
但是当我打开和关闭应用程序时,永远不会调用这些生命周期事件。有没有人知道如何使用它们,因为只有我可以使用它们,我才能构建我想要的模块。感谢
答案 0 :(得分:2)
这可能是我的问题的根源:内联链接moddevguide
在第72行,他们描述了以下内容:
// Lifecycle
// NOTES:
//
// 1. Modules are created in the root context
// 2. Using navBarHidden (or fullscreen or modal) causes the window, when opened, to run in a new Android Activity.
// 3. The root context/activity will be stopped when a new activity is launched
// 4. Lifecycle notifications will NOT be received while the root activity is stopped.
我在使用navBarHidden的应用程序中运行该模块,因此描述了一个新的android活动将被启动并且root活动被停止。每当根活动停止时,都会收到生命周期通知。谁能证实这一点,有人知道如何解决这个问题吗?感谢
答案 1 :(得分:0)
您使用的是哪个版本的SDK?在3.3.0生命周期回调中,无论导航栏是否隐藏,都会调用它。