1

私は Android/Java の初心者で、最初のアプリは MetaIO SDK を使用しています。

アプリ (MetaIO SDK) の読み込み中に、「読み込み中」プログレス バーを実装しようとしています。

  1. オーバーレイの背景が表示されます
  2. 読み込みダイアログが表示され、「画像の読み込み」が回転し始めます
  3. オーバーレイの背景が消え、読み込み中の画像が回転しなくなる <- 問題
  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();
}

}

私は何か間違ったことをしていますか?

PS完全なソースコードはここにあります:link text PSS Related to this question、しかし私はそこで提案されたテクニックを使用していますが、それでも動作したくありません

4

1 に答える 1

0

同様の問題があり、UIスレッドでUI処理コードを実行することで解決しました

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

imgvExampleOverlayは、ユーザーがキャプチャする必要があるような画像です。

お役に立てれば

于 2013-10-11T20:25:53.683 に答える