アクティビティ間の長い移行中に、回転する進行状況バー (またはダイアログ) をインストールするにはどうすればよいですか? AsyncTask を実現するのに役立つソリューションを見てきました - 投稿で述べたように、Android でアクティビティを開始する前に進行状況ダイアログを表示する方法は? 、しかし問題は進行状況バーが回転していないことです。
package expir.java.file;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
public class ExpirActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
Button mapButton = (Button)findViewById(R.id.first_button);
mapActivityIntent = new Intent(this, MyMapActivity.class);
pDialog = new ProgressDialog(this);
mapButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pDialog.setMessage("Loading...");
new MyTask(pDialog).execute();
}
});
Button downloadButton = (Button)findViewById(R.id.second_button);
downloadButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
as.DownloadFromUrl("0", "null");;
}
});
Button parseButton = (Button)findViewById(R.id.third_button);
parseButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SAXParserCreateDataBase gi = new SAXParserCreateDataBase();
try {
gi.start(ExpirActivity.this);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Button updateButton = (Button)findViewById(R.id.fourth_button);
updateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SAXParserCreateDataBase gi = new SAXParserCreateDataBase();
try {
gi.update(ExpirActivity.this);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
public class MyTask extends AsyncTask<Void, Void, Void> {
public MyTask(ProgressDialog progress) {
this.progress = progress;
}
public void onPreExecute() {
progress.show();
}
public Void doInBackground(Void... unused) {
startActivity(mapActivityIntent);
return null;
}
public void onPostExecute(Void unused) {
progress.dismiss();
}
ProgressDialog progress;
}
DownloadPrimaryDate as = new DownloadPrimaryDate();
Intent mapActivityIntent;
ProgressDialog pDialog;
}
アップデート:
LogCat の結果:
FirstActivity.onCreate()
FirstActivity.onStart()
FirstActivity.onResume()
FirstActivity.onPause()
SecondActivity.onCreate()
SecondActivity.onStart()
SecondActivity.onResume()
FirstActivity.onStop()
これは、なぜそうなのかを説明しています。
更新
私が考えていたことに気づきました-アクティビティ間のこの移行を実装するための私の試みのすべてが均等であったわけではありません.