2013-09-22 2 views
1

Что случилось с диалоговым окном прогресса? файл Java:Ошибка с диалоговым окном прогресса

public class Start_Screen extends Menu_Activity { 


List<Bitmap> lbmp; 
List<String> ltitles; 
List<String> ldesc; 
Custom_Adapter adapter; 
ProgressDialog pd; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.start_screen); 

    pd = new ProgressDialog(this, ProgressDialog.STYLE_SPINNER); 
    pd.setTitle("Downloading..."); 
    pd.setMessage("Please wait."); 
    pd.setCancelable(false); 

    ListView list = (ListView) findViewById(R.id.soundslist); 

    lbmp = new ArrayList<Bitmap>(); 
    ltitles = new ArrayList<String>(); 
    ldesc = new ArrayList<String>(); 

    new Download().execute(); 

    adapter = new Custom_Adapter(this, lbmp, ltitles); 
    list.setAdapter(adapter); 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    finish(); 
} 


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



    @Override 
    protected void onPostExecute(Void result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 

      pd.dismiss(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     // TODO Auto-generated method stub 
     String url = "picsite.comze.com/?json=1"; 
     F JSONparser = new F(); 
     JSONObject picsite = JSONparser.getJSONFromUrl(url); 
     try { 
      JSONArray posts = picsite.getJSONArray("posts"); 
      for(int i=0;i<posts.length();i++){ 
       JSONObject post = posts.getJSONObject(i); 
       String title = post.getString("title"); 
       ltitles.add(title); 

       JSONArray photos = post.getJSONArray("attachments"); 
       JSONObject photo = photos.getJSONObject(0); 
       String URL = photo.getString("url"); 

       URL downURL = new URL(URL); 
       HttpURLConnection connect = (HttpURLConnection)downURL.openConnection(); 
       connect.setDoOutput(true); 
       connect.connect(); 
       InputStream is = connect.getInputStream(); 
       Bitmap bmp = BitmapFactory.decodeStream(is); 
       lbmp.add(bmp); 

       String desc = photo.getString("description"); 
       ldesc.add(desc); 
      } 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 



     return null;  
    } 



    @Override 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     super.onPreExecute(); 
     pd.show(); 
    } 


} 
} 

А вот LogCat:

09-22 06:39:24.835: E/WindowManager(1319): Activity com.tendarius.sounds.Start_Screen has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{411a6c08 V.E..... R.....ID 0,0-480,243} that was originally added here 
09-22 06:39:24.835: E/WindowManager(1319): android.view.WindowLeaked: Activity com.tendarius.sounds.Start_Screen has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{411a6c08 V.E..... R.....ID 0,0-480,243} that was originally added here 
09-22 06:39:24.835: E/WindowManager(1319): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:354) 
09-22 06:39:24.835: E/WindowManager(1319): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216) 
09-22 06:39:24.835: E/WindowManager(1319): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.Dialog.show(Dialog.java:281) 
09-22 06:39:24.835: E/WindowManager(1319): at com.tendarius.sounds.Start_Screen$Download.onPreExecute(Start_Screen.java:126) 
09-22 06:39:24.835: E/WindowManager(1319): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 
09-22 06:39:24.835: E/WindowManager(1319): at android.os.AsyncTask.execute(AsyncTask.java:534) 
09-22 06:39:24.835: E/WindowManager(1319): at com.tendarius.sounds.Start_Screen.onCreate(Start_Screen.java:49) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.Activity.performCreate(Activity.java:5104) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
09-22 06:39:24.835: E/WindowManager(1319): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-22 06:39:24.835: E/WindowManager(1319): at android.os.Looper.loop(Looper.java:137) 
09-22 06:39:24.835: E/WindowManager(1319): at android.app.ActivityThread.main(ActivityThread.java:5041) 
09-22 06:39:24.835: E/WindowManager(1319): at java.lang.reflect.Method.invokeNative(Native Method) 
09-22 06:39:24.835: E/WindowManager(1319): at java.lang.reflect.Method.invoke(Method.java:511) 
09-22 06:39:24.835: E/WindowManager(1319): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
09-22 06:39:24.835: E/WindowManager(1319): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
09-22 06:39:24.835: E/WindowManager(1319): at dalvik.system.NativeStart.main(Native Method) 
+0

Попробуйте отклоняя диалог процесса в OnDestroy() вставить код для асинхронной задачи также –

+0

() в AsyncTask

if(!(Activity) context).isFinishing()){ dialog.show(); } if(!(Activity) context).isFinishing()){ dialog.cancel(); } 
anddevmanu

ответ

0

Вы должны создать ваш диалог, прежде чем показывать его. .

Например:

pd.create() шоу(); вместо

pd.show();

Также в вашем onPostExecute проверьте, если pd! = Null, тогда выполните pd.dismiss();

0

проверить, что активность существует или не проверив isfinishing

метод
Смежные вопросы