在android中,系统对activity是按照栈进行管理的,这样通常情况下一个activity的逻辑父activity也就是栈中的上一个activity,所以通常情况下一个activity结束自己的生命周期后都会回到自己的逻辑父activity。不过如果一个activity是设置了action,那么当通过其他app启动activity时,栈中的情况就不一样了,这时当activity结束自己的生命周期后会回到启动自己的那个activity。
那么怎么能让一个activity不论在什么情况下都能回到自己的逻辑父activity呢。android从4.1开始支持activity向上跳转到自己的逻辑父activity(4.0以前的版本也可以通过添加support libraries来实现)。下面简单介绍一下:
MainActivity
package com.example.actionbar;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.actionbar, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
default:
break;
}
return super.onOptionsItemSelected(item);
}
public void onNextActivity(View view) {
Intent intent = new