2013-10-25 3 views
6

AsyncTaskonPostExecute yönteminde bittiğinde bir amaç başlatmaya çalışırken bir sorun yaşıyorum. İlk defa AsyncTask numaralı telefonu açılış ekranı etkinliğinde.onPostExecute içinde bir etkinlik başlatılıyor

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(); 

    } 
} 

Bu JsonGet sınıf

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 doğru ayrıştırma çağırır ve günlük bu gösterir. Ama post icraatında bir niyetini aramaya çalıştığımda çöküyor. Bu JsonGet işlevini farklı bir sınıftan çağırmam gerekiyor. (Ör: Kullanıcı bir yenileme düğmesine bastığında Json verilerini güncelleyin.) Sıçrama ekranı sınıfındaki amacı çağırmak işe yaramayacaktır. İşte

Ben

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) 
+0

okuyucu/yazarı kapatır mısınız? –

+0

Kesinlikle HardwareRenderer sınıfının kaynak kodunu okumalı ve bu istisnanın neden atıldığını öğrenmelisiniz. İşte bir bağlantı: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/view/HardwareRenderer.java#HardwareRenderer.GlRenderer.chooseEglConfig % 28% 29 –

cevap

21

Ben asynctask ile herhangi bir sorun görmüyorum olsun o günlük olduğunu. Sorun emülatörünüzde görünüyor. Yeniden başlatmayı deneyin. Belki bu link size yardımcı olur: EGL_emulation failed to establish connection to host - android

+0

Donanımımda iyi çalışıyor. Yardım için teşekkürler! – AndyGable

+0

Bahşiş için teşekkürler. Aynı hatayı aldım ve emülatörü yeniden başlattı. – Hong

+0

Vay be ... 4 saat bunun için ... Teşekkürler! +1 –