を作成したときAsyncTaskが最初から実行されていない、私は問題に直面している:私は2つの活動を作成しました。
ボタンを持つメインのアクティビティが1つあります。私は、このボタンをクリックし
は、第二の活動が開始されます。
第二の活動は、私が直面してる何Textview
活動が
でこの番号を番号が1から10までインクリメントされるAsynctask
を使用し、ディスプレイAsynctask
は、その後完了していない間、私は戻るボタンをクリックしたときにということです再度最初のアクティビティAsynctask
が開始からすぐに実行されないようにします。
それは古いタスクを完了したときに、バックグラウンドで、それが再び新しいタスクを開始しますので、私は知っています。アクティビティを破壊するときにこれを修正する方法はありますか?Asynctask
も破壊されますか?ここで
は私の問題のためvideo sampleです。主な活動のための
コード:セカンド活動の
public class MainActivity extends AppCompatActivity {
Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,SecondAcitivity.class);
startActivity(i);
}
});
}
}
コード:あなたがボタンを押すとバック
public class SecondAcitivity extends AppCompatActivity {
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_acitivity);
t1 = (TextView) findViewById(R.id.t1);
OurWork obj = new OurWork();
obj.execute();
}
class OurWork extends AsyncTask<Void, Integer, String> {
@Override
protected String doInBackground(Void... params) {
int i = 0;
while (i < 11) {
try {
Thread.sleep(700);
publishProgress(i);
i++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "Successfully Completed";
}
@Override
protected void onProgressUpdate(Integer... values) {
t1.setText(values[0] + "%");
}
@Override
protected void onPostExecute(String result) {
t1.setText(result);
}
}
}
あなたはyourAsyncTask.cancel(true)を呼び出すことができます。戻るボタンを押してください。その後asyncTaskが実際にキャンセルbeeingてされて実行されている.... – Opiatefuchs
@Opiatefuchsあなたは、コード – hamel123