성경 본문 검색 기능의 성능을 개선하고 있는 중입니다. 개선은 성공적이었습니다.
하지만, 프리미엄폰에서는 searchActivity를 켠 후, 검색버튼을 바로 눌러도 되는데,
자급제 폰에서는 searchActivity를 켠 후,
0.6~1초 정도 지난 후에 검색버튼을 눌러야 안튕기더라구요.
중괄호 내부에 텍스트를 읽어와서 ArrayList 변수에 저장하는 코드가 있는데,
이 속도가 매 번 제각각이어서 그렇습니다.
텍스트를 다 읽어오기 전에 검색 버튼을 누르면 튕깁니다.
그래서 스레드 작업이 끝나면 끝났다는 신호좀 보내줬으면 좋겠는데,
신호를 보내주는 코드랑 이걸 감지하는 코드가 뭔지 잘 모르겠어요.
텍스트 읽어오는 동안에는 터치를 못하게, UI를 감췄다가, 신호를 감지하면,
UI를 비저블 트루로 해놓으려고 합니다.
UI 속성 건드리는 작업은 이 중괄호 내부에서는 사용할 수 없더라구요.
그래서, 밖으로 신호를 좀 줬으면 좋겠다 싶어요.
일단 답변을 좀 더 읽어봐야 알것 같아요. ㅎ 감사합니다.
온 크리에이트 영역
lifecycleScope.launch(Dispatchers.IO) {
//start_Time = System.currentTimeMillis()
for (i in 1..2) {
when (i) {
1 -> {
rp1 = "구약"
for (o in 0..38) {
rp2 = book3[o] //1. 창세기
for (p in numbers1[o]) { //1..50
rp3 = "${book5[o]}$p" //genesis
loadDataSource(book1[o], p) //창세기
}
}
}
2 -> {
rp1 = "신약"
for (o in 0..26) {
rp2 = book4[o] //1. 마태복음
for (p in numbers2[o]) { //1..28
rp3 = "${book6[o]}$p" //matthew
loadDataSource(book2[o], p) //마태복음
}
}
}
}
}
uiShow()
//end_Time = System.currentTimeMillis()
}
온 크리에이트 외부 영역
private fun uiShow () {
tab_lay2.visibility = View.VISIBLE
edit_layout.visibility = View.VISIBLE
//액티비티 시작할때, 키보드 바로 보여주는 코딩.
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY)
}