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