2012-08-24 18 views
8

Ben sadece android destek kitaplığından DialogFragment kullanmaya başladı ve şu ana kadar son derece sinir bozucu bulabilirsiniz. Uygulamamdaki farklı yerlerden çağrılan bazı özel AsyncTasks'larım var. Ben DialogFragments sorun haline çalıştırdığınızda iki durumlar vardır:IllegalStateException

  1. ayıklama ve ekran kapandığında
  2. I) en az

Hem onActivityResult bir FragmentDialog (açmak istiyorum bence, oldukça yaygın durumlardır ve her iki durumda da bir

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 

Bu benim AsyncTasks yapılandırılmıştır nasıl olsun:

private class UploadImageAsyncTask extends AsyncTask<Void, Void, Image> { 
    private ProgressDialogFragment dialog; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     FragmentManager fm = getSupportFragmentManager(); 
     dialog = new ProgressDialogFragment(); 
     dialog.show(fm, "ProgressDialogFragment"); 
    } 

    @Override 
    protected Image doInBackground(Void... params) { 
     ... 
    } 

    @Override 
    protected void onPostExecute(Image result) { 
     super.onPostExecute(result); 
     dialog.dismiss(); 

     ... 
     } 
    } 
} 

Ben ayıklama ve ben onActivityResult bir bayrak set() ve ardından onStart() içinde iletişim açılabilir iken uykuya geçmesini ekrana engelleyen bir ayarını biliyorum, ama bu gerçekten değil ne arıyorum. Daha iyi çözümler var mı?

Teşekkür Simon

+0

Bu benim Android gelişiminde karşılaştığım en can sıkıcı sorunlardan biri. Kullanımdan kaldırılan iletişim API'ları bu sorunla karşılaşmadı. Tüm geçici çözümler çok çirkin. Bu soruna hala temiz bir çözüm bulamadım. –

+0

Ben de değil. Hala bana temiz bir çözüm gösteren birini bekliyorum: - \ – SimonSays

cevap

4

kullanım dialog.dismissAllowingStateLoss(); yerine dialog.dismiss();

İlgili konular