android中调用activity的finish就会关掉当前的Activity,包含关掉了fragment。
在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。getActivity().finish()。
Android中,退出应用程序的方式:
1.通过pid
int pid = android.os.Process.myPid(); //获取当前应用程序的PID
android.os.Process.killProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2.通过ActivityManager
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
适配器
在一个页面的list中绑定了自定义的适配器,通过点击适配器中所属的某个按钮进行页面跳转
但是在跳转完后list所属的页面还在activity栈中 即没有finish()掉
在创建子activity时把它加到一个队列t里去,子activity销毁时从队列里删除。
listview销毁时遍历这个队列,调用每子activity的finish方法。
class MyAdapter extends BaseAdapter{
Activity act;
public MyAdapter(Activity activity){
act=activity;
}
public View getView(){
button.setonClick(){
Intent it=new Intent();
startActivity(it);
act.finish();
}
}
}