티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

What do I use now that Handler() is deprecated?

Handler()가 더 이상 권장되지 않을 때 제가 어떻게 해야할까요?

 문제 내용 

How do I fix the deprecation warning in this code? Alternatively, are there any other options for doing this?

Handler()가 더 이상 사용되지 않는다는 경고가 나올 때 이 코드를 어떻게 수정할 수 있는지 알려주세요. 또는 이를 수행할 수 있는 다른 옵션이 있는지 알려주세요.
Handler().postDelayed({
    context?.let {
        //code
    }
}, 3000)

 

 

 높은 점수를 받은 Solution 

Only the parameterless constructor is deprecated, it is now preferred that you specify the Looper in the constructor via the Looper.getMainLooper() method.

매개변수 없는 생성자만이 더 이상 권장되지 않으며, 이제는 Looper.getMainLooper() 메서드를 통해 생성자에서 Looper를 지정하는 것이 선호됩니다.

 

Use it for Java

Java용으로 사용
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
        // Your Code
    }
}, 3000);

 

Use it for Kotlin

코틀린을 위해 사용하세요.
Handler(Looper.getMainLooper()).postDelayed({
    // Your Code
}, 3000)

 

 

 가장 최근 달린 Solution 

import android.os.Looper
import android.os.Handler

inline fun delay(delay: Long, crossinline completion: () -> Unit) {
    Handler(Looper.getMainLooper()).postDelayed({
        completion()
    }, delay)
}

 

Example:

예:
delay(1000) {
    view.refreshButton.visibility = View.GONE
}

 

 

출처 : https://stackoverflow.com/questions/61023968/what-do-i-use-now-that-handler-is-deprecated

반응형
댓글
공지사항
최근에 올라온 글