android - 그것을 보여주지 않고 활동 시작하기



android-activity (4)

레이아웃에 setContentView를 호출하지 않고 startActivity를 호출 할 수 있습니다. 희망이 도움이!

https://ffff65535.com

나는 활동 B를 시작하고 활동 B는 활동 C를 시작하는 활동 A를 가지고있다. 활동 B를 표시하지 않는 방법이 있는가? 활동 B에 대한 내용 (예 : ListView)이 없으면 활동 C를 표시하기 때문에이 행동을 원한다. 어떤 데이터를 선택한 다음 다시 버튼을 눌러 활동 B로 돌아갑니다. 요점은 활동 스택에서 활동 B를하고 싶지만 특정 경우에는 표시하지 않는 것입니다.


매니페스트 세트에서

android:theme="@android:style/Theme.NoDisplay"

너의 활동을 위해.


액티비티 B의 onCreate() 메소드에서 startActivity() 를 호출하면 액티비티 스택에 표시된다.


해결책을 찾았습니다.

  • 활동 A는 추가 매개 변수로 활동 B를 시작합니다 (intent.putExtra ( "something", true)).
  • 활동 B :
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getIntent().hasExtra("something") && getIntent().getBooleanExtra("something", false) {
            //show activity B
        setContentView(R.layout.activity_B);
    } else {
            //don't show activity B, start activity C
        startActivityForResult(activity_C, ACTIVITY_NOT_INITIALIZED); //start activity C
    }
}

// 활동 C에서 돌아 왔을 때 활동 B가 이미 초기화되었는지 확인

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == ACTIVITY_NOT_INITIALIZED) {
        //show activity B
        setContentView(R.layout.activity_B);
  }
}




android-activity