大佬教程收集整理的这篇文章主要介绍了jquery-mobile – Phonegap和C2DM – NullPointerException,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
因此,我覆盖onNewIntent事件以存储intent:
@Override protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); seTintent(intent); }
然后,在onResume中,如果意图来自C2DM,我激活了正确的页面:
@Override protected void onResume() { super.onResume(); // read possible argument Boolean showmessage = geTintent().getBooleanExtra(ARG_SHOW_messaGES,falsE); if (showmessagE) { clearNotification(); super.loadUrl("file:///android_asset/www/de/index.html#messages"); } }
这样可以正常工作,但有时会出现NullPointerException崩溃 – 不是在我的手机或模拟器上,而是在其他设备上. stacktrace表示它位于DroidGap活动的onNewIntent中,见Code:
protected void onNewIntent(Intent intent) { super.onNewIntent(intent); //ForWARD to plugins this.pluginManager.onNewIntent(intent); }
我无法重现这种情况.显然pluginManager是null但我不是为什么.
所以问题是:
>采用的方法是从Android中选择jquery-mobile中的特定页面,还是有人指出更好的方法?
>我怎样才能摆脱异常?当然我可以检查pluginManager是否为null,在这种情况下不要调用super – 但是我的特定页面没有被激活.
>你认为这是@L_20_1@phoneGap错误 – 不检查pluginmanager是否为null?当我检查PhoneGap代码时,我认为这应该永远不会发生,我的理解onNewIntent仅在加载活动时被调用,否则将触发onCreate.
更新
我现在知道的更多:当没有加载应用程序并且C2DM消息到达时出现问题.
意图启动应用程序,事件按以下顺序发生 – 但onNewIntent仅偶尔调用:
onCreate() onNewIntent() onResume()
每当在启动期间执行onNewIntent时它就会崩溃.无论如何我修复了这个:
@Override protected void onNewIntent(final Intent intent) { // avoid Phonegap bug if (pluginManager != null) { super.onNewIntent(intent); } seTintent(intent); }
当我想更改onResume-Event中的起始页时,当Phonegap没有准备好时,这不起作用.因此,在应用程序启动的情况下,只需尽早调用onResume中的#messages页面即可.但什么时候打电话呢?是否有可能挂钩onDeviceReady?
public void onDeviceReady() { if (!isReady) { super.loadUrl("file:///android_asset/www/en/index.html#messages"); } // activate onResume instead isReady = true; }
以及上面的布尔标志:
/** Is PhoneGap ready? */ private Boolean isReady = false;
我在onCreate事件中激活回调:
// CallBACk setzen appView.addJavascripTinterface(this,"Android");
并从Javascript onDeviceReady调用它
if (OSName == "Android") { window.Android.onDeviceReady(); }
在onResume事件中,我使用协商逻辑:
protected void onResume() { super.onResume(); if (isReady) { super.loadUrl("file:///android_asset/www/en/index.html#messages"); } }
这保证了页面选择只在onResume或onDeviceReady中执行一次.
以上是大佬教程为你收集整理的jquery-mobile – Phonegap和C2DM – NullPointerException全部内容,希望文章能够帮你解决jquery-mobile – Phonegap和C2DM – NullPointerException所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。