반응형
포스팅 날짜 : 2019-07-23
Android Studio 버전 : 3.4.2
Android에서 Kotlin을 이용하여 개발하는중에 Activity에서 Service로 데이터를 통신하고 싶었습니다.
그래서 ResultReceiver를 사용하여, 데이터를 Intent로 넘겨서 사용하려고 했는데, ResultReceiver를 상속받으니 다음과 같은 에러 메시지가 발견되었습니다.
작성한 Kotlin 코드는 다음과 같습니다.
class DataResultReceiver() : ResultReceiver() {
override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
super.onReceiveResult(resultCode, resultData)
}
}
Java코드로는 다음과 같은 코드를 사용하고자 했습니다.
public class DataReceiver extends ResultReceiver {
// Constructor
public DataReceiver(Handler handler) {
super(handler);
}
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (receiver != null) {
receiver.onReceiveResult(resultCode, resultData);
}
}
}
위의 오류는 부모클래스인 ResultReceiver 클래스의 생성자 호출시
handler를 부모인 ResultReceiver에 전달해야되는데 작성한 Kotlin의 코드에는 없으므로 오류 메시지가 발생한것입니다.
(Java 코드에서는 super(handler)로 ResultReceiver로 전달합니다.)
생성자에 handler를 추가하였고, 부모클래스에게도 handler 객체를 입력해서 오류메시지를 해결했습니다.
class DataResultReceiver(handler : Handler) : ResultReceiver(handler) {
override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
super.onReceiveResult(resultCode, resultData)
}
}
참고 URL
반응형
'Development > Android' 카테고리의 다른 글
안드로이드 패키지명(PackageName)으로 설치여부 확인하는 방법 (0) | 2020.09.07 |
---|---|
안드로이드 설치된 앱 버전 읽어오기 (0) | 2020.09.07 |
안드로이드 가로모드(혹은 세로모드) 고정하는 방법. (0) | 2020.09.05 |
안드로이드10에서 클립보드 내용 가져오기. (0) | 2020.09.05 |
[Android - Kotlin] java.lang.IllegalStateException: TextView must not be null 오류 (0) | 2019.07.30 |