Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Olive Study Room

[Android Studio] persistentState: PersistableBundle 본문

Coding/Android

[Android Studio] persistentState: PersistableBundle

Olive Dev 2021. 7. 17. 17:29

recyclerView를 만들어보다가

처음에 생성되는 MainActivity에서는 실행이 되는데 SubActivity를 첫 엑티비티로 하면 보여지지 않는 이슈가 났다.

아래 두 코드의 주요 코드는 같다.

 

 

MainActivity

package fastcampus.part2.recyclerviewpractice

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val recyView: RecyclerView = findViewById(R.id.recyclerView)

        recyView.layoutManager = LinearLayoutManager(this)
        // view.adapter
        recyView.adapter = CustomAdapter()
    }
}

 

SubActivity

package fastcampus.part2.calendarprac

import android.os.Bundle
import android.os.PersistableBundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class RecyclerActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
        super.onCreate(savedInstanceState, persistentState)
        setContentView(R.layout.recylerview_main)

        val view: RecyclerView = findViewById(R.id.recyclerView)

        view.layoutManager = LinearLayoutManager(this)
        // view.adapter
        view.adapter = RvAdapter()
    }
}

 

 

차이는 persistableBundle.

 

 

https://stackoverflow.com/questions/53759905/when-using-persistablebundle-in-oncreate-it-shows-me-a-blank-page

찾아보니 persistableBundle은 원래 디바이스를 재부팅했을 때 상태를 복원하는데 쓰기 때문에,

이걸 사용하는 onCreate()는 보통 Activity가 시작하는 동안 호출되지 않는다. 

그렇기 때문에 setContentView()가 호출되지 않는다.

 

 

 

 

이거 때문에 프로젝트를 세 번 다시 만들었는데..^^ 즐겁다.

Comments