我使用Codename One创建了一个应用,但我在Android上推送通知时遇到了问题。
当应用未在后台打开时打开推送通知时会出现问题。
当它尝试使用主题中的任何资源时,会导致NullPointerException。主题在init()方法中初始化,但在打开推送通知时似乎不会发生。
如果我然后在与空指针相同的方法中初始化主题,就在它发生之前,它就可以工作了。然后继续在方法中进一步导致空指针。
为什么在应用程序未在后台打开时打开推送通知时,某些对象似乎没有在Android上初始化?
使用主题时最初导致NullPointerException的行是
Image icon = theme.getImage("ADINlogoRound.png");
我的初始化方法是
public void init(Object context) {
theme = UIManager.initFirstTheme("/theme");
Resources css = null;
try {
css = Resources.openLayered("/theme.css");
} catch (IOException ex) {
}
UIManager.getInstance().addThemeProps(css.getTheme(css.getThemeResourceNames()[0]));
// Enable Toolbar on all Forms by default
Toolbar.setGlobalToolbar(true);
Log.bindCrashProtection(true);
Display.getInstance().lockOrientation(true);
}
答案 0 :(得分:1)
似乎在android中,当从推送通知打开应用程序时,不会调用init和start方法。无论你在这些方法中做什么,也应该用push方法完成。