어제에 이어서 다시 질문드립니다.

ActivityGroup을 상속해서 TabActivity와 비슷한 것을 구현하려고 애쓰고 있습니다.

 package com.shiftone.activitygrouptest;

import java.util.ArrayList;

import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;

public class ActivityGroupTest extends ActivityGroup {
    /** Called when the activity is first created. */
    LocalActivityManager mLocalActivityManager;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Intent intent = new Intent();
        Window w1, w2;
        final View v1;
        final View v2;
        FrameLayout fl = (FrameLayout) findViewById(R.id.FrameLayout01);
        
        mLocalActivityManager = getLocalActivityManager();
        intent.setClass(this, FrameActivity1.class);
        w1 = mLocalActivityManager.startActivity("Frame1", intent);
        intent.setClass(this, FrameActivity2.class);
        w2 = mLocalActivityManager.startActivity("Frame2", intent);

        v1 = w1.getDecorView();
        v2 = w2.getDecorView();
        
        fl.addView(v1);
        fl.addView(v2);
        v2.setVisibility(View.GONE);

        final Button b1;
        b1 = (Button) findViewById(R.id.Button01);
        b1.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v) {
                v1.setVisibility(View.VISIBLE);
                v2.setVisibility(View.GONE);

                v1.requestFocus(View.FOCUS_FORWARD);
                b1.setText(mLocalActivityManager.getCurrentId());
            }
        });
        
        final Button b2;
        b2 = (Button) findViewById(R.id.Button02);
        b2.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                v1.setVisibility(View.GONE);
                v2.setVisibility(View.VISIBLE);
                
                v2.requestFocus(View.FOCUS_FORWARD);
                mLocalActivityManager.destroyActivity("Frame1", true);
            }
        });
    }
}


위와 같은 방법으로 일단 Tab의 흉내는 내고 있는데, 안드로이드에서 제공하는 TabActivity의 경우에 탭을 이동할 때 실제로 Activity가 foreground와 background로 이동하고 그럴 때마다 onResume() 호출되는 것을 볼 수 있는데 비해서, 위와 같은 구현에서는 Frame2 Activity만 currentActivity가 되고 이것이 변하지 않는 것 같습니다.

embedded된 Activity들의 생명주기를 제어하는 방법에 대해서 알 수 있는 자료를 알려주시면 무척 감사하겠습니다.


저는 원래 시스템 룩&필을 그대로 따라가는 걸 좋아하는데 안드로이드로 무리하게 아이폰 UI를 흉내내려는 작업이 마음에 들지는 않네요.