2013-09-18 3 views
1

Я совершенно новичок в Android/Java, и мое первое приложение использует MetaIO SDK.MetaIO progressDialog зависает при загрузке SDK

Я пытаюсь реализовать индикатор выполнения «Загрузка», в то время как приложение (MetaIO SDK) загружается.

  1. Overlay фон Показанная появился
  2. диалоговое окно Загрузка и «загрузка изображений» начинает вращаться
  3. Overlay фон исчезает, и загрузка изображений прекращает вращаться < - проблема
  4. Через 2-3 секунд разворачивается и выполняется ARELViewActivity.

Код:

public void onScanButtonClick(View v) 
{ 
    new ScanLoadingDialog().execute(0); 
} 

private class ScanLoadingDialog extends AsyncTask<Integer, Integer, Boolean> 
{ 
    //Before running code in separate thread 
    @Override 
protected void onPreExecute() 
{ 
    progressDialog = new ProgressDialog(MainActivity.this); 
    progressDialog.setMessage("Loading"); 
    progressDialog.setCancelable(false); 
    progressDialog.setIndeterminate(false); 
    progressDialog.show(); 
} 

@Override 
protected Boolean doInBackground(Integer... params) 
{ 
    try 
    { 
    synchronized (this) { 
     AssetsManager.extractAllAssets(getApplicationContext(), true); 
     startActivity(new Intent(getApplicationContext(), ARELViewActivity.class)); 
    } 

    } 
    catch (IOException e) 
    { 
    MetaioDebug.log(Log.ERROR, "Error extracting assets: "+e.getMessage()); 
    MetaioDebug.printStackTrace(Log.ERROR, e); 
    return false; 
    } 

    return true; 
} 

@Override 
protected void onPostExecute(Boolean result) 
{ 
    progressDialog.dismiss(); 
    finish(); 
} 

}

Я делаю что-то не так?

P.S. Полный исходный код можно найти здесь: link text P.S.S. Относящиеся к this question, но я использую метод предложил там, и она по-прежнему не хочет работать

ответ

0

У меня была аналогичная проблема, и я решил ее с помощью кода обработки пользовательского интерфейса в потоке пользовательского интерфейса, как так

runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
    if (imgvExampleOverlay != null) 
     imgvExampleOverlay.setVisibility(View.VISIBLE); 
    } 
    }); 

imgvExampleOverlay - изображение, подобное тому, которое пользователь должен захватить.

Надеюсь, что это поможет

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