android - 在 onPostExecute 中启动一个 Activity

标签 android json android-intent

AsyncTaskonPostExecute 方法上完成时尝试启动 Intent 时我遇到了问题。我第一次调用 AsyncTask 是在初始屏幕 Activity 中。

public class SplashScreen extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

       startJsonGet();
    }

    public void startJsonGet() {
        JsonGet getData = new JsonGet(mBuildings, SplashScreen.this);
        getData.execute();

    }
}

这会调用 JsonGet

public class JsonGet extends AsyncTask<Void, Void, Void> {

    Context context;

    JsonGet(ArrayList<Building> mBuildings, Context context){
        super();
        this.mBuildings = mBuildings;
        this.context = context;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // before making http calls

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        JsonParser jsonParser = new JsonParser();
        String json = jsonParser
                .getJSONFromUrl("");

        Log.e("Response: ", "> " + json);


        if (json != null) {
            try {

               //Does stuff
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        Intent i=new Intent(context, MainActivity.class);
        context.startActivity(i);

    }

}

JSON 解析正确,日志显示了这一点。但是当我试图在执行后调用一个 Intent 时它崩溃了。我需要从不同的类调用此 JsonGet 函数。 (例如:当用户单击刷新按钮时更新 Json 数据。)因此从启动画面类调用 Intent 将不起作用。

这是我得到的日志

    10-25 16:03:12.156    8481-8481/com.andrewcode.broncomaps E/eglCodecCommon﹕ writeFully: failed: Broken pipe
10-25 16:03:12.156    8481-8481/com.andrewcode.broncomaps E/EGL_emulation﹕ tid 8481: eglChooseConfig(576): error 0x3001 (EGL_NOT_INITIALIZED)
10-25 16:03:12.164    8481-8481/com.andrewcode.broncomaps E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalArgumentException: eglChooseConfig failed EGL_NOT_INITIALIZED
            at android.view.HardwareRenderer$GlRenderer.chooseEglConfig(HardwareRenderer.java:893)
            at android.view.HardwareRenderer$GlRenderer.initializeEgl(HardwareRenderer.java:845)
            at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:786)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1502)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
            at android.view.Choreographer.doCallbacks(Choreographer.java:562)
            at android.view.Choreographer.doFrame(Choreographer.java:532)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)

最佳答案

我没有发现 asynctask 有任何问题。问题似乎出在您的模拟器上。尝试重新启动它。也许此链接可以帮助您:EGL_emulation failed to establish connection to host - android

关于android - 在 onPostExecute 中启动一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19600279/

相关文章:

java - 构建 Android 项目失败并出现内部错误

android - 如何在 Google map 中显示我当前的位置?

java - Android如何同时处理多个Runnable对象

android - 尝试从 libart.so 调用 JNI_CreateJavaVM 失败

java - 从 URL 解析 JSON

android - 如何在android中一次完成多个 Activity ?

javascript - OData 格式 = json 的剑道网格数据源

java - Jackson 1.8.5 的日期解析问题

Android:同时支持 ACTION_GET_CONTENT 和 ACTION_OPEN_DOCUMENT 时避免重复输入

java - 使用 Intent 在 Activity 之间传递字符串值