Dzień dobry. Mam problem z zamykaniem aktywności w mojej (pierwszej) aplikacji w Androidzie. Być może moglibyście mi pomóc? Będę ogromnie wdzięczna!
Aktywność klasy A uruchamia aktywność klasy B. Następnie kilka razy wywoływane są aktywności klasy B. Za każdym razem odbywa się to przez startActivityForResult (intent, REQUEST_CODE_A) (requestCode jest za każdym razem taki sam). Z ostatniej aktywności chciałabym wrócić do aktywności klasy A. Czyli zamknąć wszystkie dotychczas otwarte aktywności. Ponieważ wszystkie są z tym samym 'requestCode' zrobiłam to przez finishActivity(REQUEST_CODE_A) (żeby zamknąć wszystkie otwarte wcześniej) i potem finish() (żeby zamknąć najnowszą). Rezultat: zamyka się najnowsza, pozostałe nie. Z czego może wynikać błąd? Może źle rozumiem dokumentację? Początkująca będzie ogromnie wdzięczna za pomoc. Dziękuję z góry!
Może jednak wkleję swój kod (jego fragmenty odpowiedzialne za powyższe).
MainActivity.class
public void browseFiles (View v) throws IOException {
Intent intent = new Intent(this, FileListActivity.class);
intent.putExtra(path, "/");
startActivityForResult(intent, R.integer.REQUEST_CHOOSE_A_SONG);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
switch(requestCode){
case R.integer.REQUEST_CHOOSE_A_SONG:
if(resultCode == RESULT_OK) try {
mediaPlayer.setDataSource(this, Uri.parse(data.getStringExtra(path)) );
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileListActivity.class
if(new File(fileName).isDirectory()){
intent = new Intent(this, FileListActivity.class);
intent.putExtra("path", fileName);
startActivityForResult(intent, R.integer.REQUEST_CHOOSE_A_SONG);
}
else {
intent = new Intent();
intent.putExtra("path", fileName);
setResult(RESULT_OK, intent);
finishActivity(R.integer.REQUEST_CHOOSE_A_SONG);
Toast.makeText(this, fileName + " set to play!", Toast.LENGTH_SHORT).show();
finish();
}
dodanie znaczników <code class="java"> - Furious Programming