gpt4 book ai didi

android - 如何从异步任务传递消息以激活

转载 作者:行者123 更新时间:2023-11-29 21:58:17 24 4
gpt4 key购买 nike

我想从 asytask 向我的主要 Activity 发送一些消息。我想用消息对象(处理程序)来做到这一点。在我的主要 Activity 中,我创建了这个

    final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
msg.toString();
}

};

我传递给 asytask 的对象

 new splash(first.this,mHandler).execute();

以及通过此方法向 Activity 发送消息的 asytask

protected void onPostExecute(String result) {
Message msg = new Message();
Bundle bundle = new Bundle();
bundle.putString("ActivityName",this.newActivity);
msg.setData(bundle);
mHandler.sendMessage(msg);
Dialog.dismiss();

日志

    09-29 11:55:41.631: E/AndroidRuntime(473): FATAL EXCEPTION: main
09-29 11:55:41.631: E/AndroidRuntime(473): java.lang.NullPointerException
09-29 11:55:41.631: E/AndroidRuntime(473): at tools.splash.onPostExecute(splash.java:109)
09-29 11:55:41.631: E/AndroidRuntime(473): at tools.splash.onPostExecute(splash.java:1)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask.finish(AsyncTask.java:417)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask.access$300(AsyncTask.java:127)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.Looper.loop(Looper.java:123)
09-29 11:55:41.631: E/AndroidRuntime(473): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-29 11:55:41.631: E/AndroidRuntime(473): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 11:55:41.631: E/AndroidRuntime(473): at java.lang.reflect.Method.invoke(Method.java:507)
09-29 11:55:41.631: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-29 11:55:41.631: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-29 11:55:41.631: E/AndroidRuntime(473): at dalvik.system.NativeStart.main(Native Method)

最佳答案

根据您上面的评论,应用程序在 Dialog.dismiss() 时崩溃。Dialog 变量是否正确声明和实例化?你在某处让它为空吗?(我想 Dialog 是一个变量而不是一个类,对吧?)

编辑:

好的,但是问题还是一样。您是否检查过 mHandler 对象是否已正确声明实例化并且它不是 null

您在 AsyncTask 中将其作为参数传递。您能否将代码发布到您使用 mHandler 并将其存储在“某处”的位置?

AsyncTask 是否在 Handler 的同一范围内?

关于android - 如何从异步任务传递消息以激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com