私は非同期タスクを使用してメニューアクティビティから文字列を取得し、いくつかのものをロードします。しかし、私は できません。私は正しい方法でそれを使用しています。パラメータは正しくありますか? コードスニペットをご覧ください。おかげで、これに代えてパラメータをAsynctaskに渡す
private class Setup extends AsyncTask<Void, Integer, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
if (!(getIntent().getExtras().isEmpty())) {
Bundle gotid = getIntent().getExtras();
identifier = gotid.getString("key");
}
} catch (Exception e) {
e.getStackTrace();
} finally {
if (identifier.matches("abc")) {
publishProgress(0);
db.insert_fri();
} else if ((identifier.matches("xyz"))) {
publishProgress(1);
db.insert_met();
}
}
return null;
}
@Override
protected void onProgressUpdate(Integer... i) {
// start the song here
if (i[0] == 0) {
song.setLooping(true);
song.start();
}
}
@Override
protected void onPostExecute(Void res) {
}
@Override
protected void onPreExecute() {
// do something before execution
}
}
のようになりますか?私はasynctaskのプライベートフィールドを初期化するためにコンストラクタを使うことがなぜAndroidの悪いことかを判断しようとしています。 – bsautner
私はそれが悪い考えではないと言っていましたが、パラメータを渡すためには、メモリを無駄にしてしまうので、コンストラクタルートを経由しないでください。 – HimalayanCoder
どのくらいのメモリを無駄にすることができますか? –