There are a activities in my application. Lets call them activities 1,2,3. All of them child to MainActivity. In my application I define for each child activity:

        android:parentActivityName="MainActivity" >
            android:value="MainActivity" />

In onOptionsItemSelected it handled:

    else if(item.getItemId() =={
        Intent intent = new Intent(this, GeneralSettingsActivity.class); 

However if I navigate for example from main->1->2->3 and then press up button it return me 3->2->1-> main. It does not return me to 3->main. What can be the reason?

¿Fue útil?


To handle the hardware back button, you can use this code (found on How to handle back button in activity)

public void onBackPressed() {//for api level 5
    // your code.

public boolean onKeyDown(int keyCode, KeyEvent event) {//higher than api 5
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;

    return super.onKeyDown(keyCode, event);

Use the first one if you have your minimum API set at level 5 or lower (as far as I can tell that should work)

Now, we need to navigate up. So, where the your code comment is, you should be able to write:


and have it navigate up properly.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow