Android 如何在不获取NullPointerException的情况下从活动的onCreate访问方法

Android 如何在不获取NullPointerException的情况下从活动的onCreate访问方法,android,android-activity,Android,Android Activity,我试图在创建活动时设置警报,但收到空指针异常。然而,当我通过点击按钮设置警报时,它工作得很好 所以我尝试了很多方法,包括在活动的onCreate()方法中的不同线程上设置该方法,但仍然得到了一个NPE 我还尝试将活动的onCreate方法设置为public,但结果仍然相同。有什么建议吗 日志: 11-08 13:51:17.109:E/AndroidRuntime(26046):java.lang.RuntimeException:无法启动活动组件信息{com.snapttechtechnolo

我试图在创建活动时设置警报,但收到空指针异常。然而,当我通过点击按钮设置警报时,它工作得很好

所以我尝试了很多方法,包括在活动的onCreate()方法中的不同线程上设置该方法,但仍然得到了一个NPE

我还尝试将活动的onCreate方法设置为public,但结果仍然相同。有什么建议吗

日志:
11-08 13:51:17.109:E/AndroidRuntime(26046):java.lang.RuntimeException:无法启动活动组件信息{com.snapttechtechnologies.stevekamau.weoching/com.snapttechtechnologies.stevekamau.weoching.activities.AddEvent}:java.lang.NullPointerException
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.ActivityThread.access$800(ActivityThread.java:151)
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.os.Handler.dispatchMessage(Handler.java:110)上
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.os.Looper.loop(Looper.java:193)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于android.app.ActivityThread.main(ActivityThread.java:5333)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于java.lang.reflect.Method.Invokenactive(本机方法)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于java.lang.reflect.Method.invoke(Method.java:515)
11-08 13:51:17.109:E/AndroidRuntime(26046):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
11-08 13:51:17.109:E/AndroidRuntime(26046):在dalvik.system.NativeStart.main(本机方法)
11-08 13:51:17.109:E/AndroidRuntime(26046):由以下原因引起:java.lang.NullPointerException
11-08 13:51:17.109:E/AndroidRuntime(26046):位于com.snapletechtechnologies.stevekamau.weoching.helper.ScheduleClient.setAlarmForNotification(ScheduleClient.java:60)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于com.snapttechtechnologies.stevekamau.weoching.activities.AddEvent.setAlarmTime(AddEvent.java:54)
11-08 13:51:17.109:E/AndroidRuntime(26046):位于com.snapttechtechnologies.stevekamau.weoching.activities.AddEvent.onCreate(AddEvent.java:38)
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.Activity.performCreate(Activity.java:5343)上
11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)

11-08 13:51:17.109:E/AndroidRuntime(26046):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
绑定服务是不同步的。您在请求绑定服务连接后立即调用服务方法,但绑定尚未完成


您可以在您的
ServiceConnection
上使用
onServiceConnected()
回调来了解服务何时被绑定。

您尝试的代码?问题不在于从onCreate访问方法,而在于该方法的功能。显然有些东西没有初始化,但是没有你的代码和logcat我们就说不出来。马上发布代码和logcat我也猜到了。所以我添加了一个线程处理程序来延迟3秒钟。相同的结果。如果您使用例如
thread.sleep()
阻塞主线程,则绑定在同一线程上不会有帮助。但是如果我理解正确的话。。您建议我在建立连接后将设置报警的代码移动到ScheduleClient?