Android 146

Intent Flag

Intentval iT = Intent(this, MainActivity::class.java) iT.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP) startActivity(iT) FLAG_ACTIVITY_SINGLE_TOPiT.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)동일한 액티비티가 연속으로 쌓을 경우, 새로 Create하지 않고 기존 액티비티를 onPause(), onNewIntent(), onResume() 순서로 재활용 FLAG_ACTIVITY_CLEAR_TOPiT.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 새로 호출한 액티비티가 이미 스택에 쌓여있는 경우, 해당 액티비티를 순서로 재활용하고, 아래 있는 ..

IAP결제 시 onProductPurchased가 첫번째 시도에 호출되지 않을 때

Problem//특정 productId인 제품의 구매성공 시 호출 override fun onProductPurchased(productId: String, details: TransactionDetails?) { Log.d("DDD", "onProductPurchased( $productId, $details") }구매 팝업창이 뜨고, 결재를 해서 구매가 성공했음에도 애가 호출되지 않는다.한번 더 해당 product를 누르면 그제서야 함수가 호출된다. (이 때 팝업창은 뜨지 않음) Solutionoverride fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (!bp.handleActivityResult(reques..

EditText addTextChangedListener에서 에러 표시

EditText addTextChangedListener에서 에러 표시 //Meterial EditText //(https://github.com/rengwuxian/MaterialEditText/wiki) implementation 'com.rengwuxian.materialedittext:library:2.1.4'Meterial EditText라는 라이브러리 사용 class MainActivity : BaseActivity() { private val mHandler by lazy { Handler() } override fun onCreate(savedInstanceState: Bundle?) { ...핸들러 선언 editText.addTextChangedListener(object : TextWa..

Android/Kotlin 2019.03.19

RecyclerView Click이벤트 구현

RecyclerView Click이벤트 구현 RecyclerViewAdapterclass RecyclerViewAdapter: RecyclerView.Adapter() { //데이터를 저장할 아이템리스트 val items = ArrayList() //클릭 인터페이스 정의 interface ItemClickListener { fun onClick(view: View, position: Int) } //클릭리스너 선언 private lateinit var itemClickListner: ItemClickListener //클릭리스너 등록 매소드 fun setItemClickListener(itemClickListener: ItemClickListener) { this.itemClickListner = ite..

Android/Kotlin 2019.03.14

@JvmStatic (자바,코틀린 static매소드 연동)

@JvmStatic companion object 내에 선언된 속성과 함수는 {클래스 이름}.{필드/함수 이름} 형태로 바로 호출할 수 있다. 즉, 위의 Foo클래스 내 companion object에 선언된 baz() 함수는 다음과 같이 호출 가능.companion object를 사용하여 위와 같이 구성한 코드를 자바에서 사용하려면 속성 및 함수가 자바의 필드/메서드로 해석되도록 알려주어야 한다. const 선언이 되어 있는 속성은 별도 처리가 필요 없이 자바에서도 동일하게 사용 가능하며, 함수는 @JvmStatic 어노테이션을 사용하여 자바에서 정적 메서드로 사용할 수 있다. https://www.androidhuman.com/lecture/kotlin/2016/07/10/kotlin_companio..

Android/Kotlin 2019.03.13

WifiManager로 접속변경 시 이전 와이파이에 다시 붙는 문제

어플을 통해 코드로 다른 와이파이에 접속한 경우, 변경 전 와이파이에 임의로 다시 돌아가는 경우가 있음. wifiManager.disableNetwork(latestnetId) wifiManager.disableNetwork(latestnetId) wifiManager.saveConfiguration() //6상의 버전에서는 없어도 된다안드로이드 8+에서는 위의 방법으로 불가능.버전이 올라갈수록 deplicated된 것이 많음. *WifiManager API: https://developer.android.com/reference/android/net/wifi/WifiManager https://stackoverflow.com/questions/49363190/oreo-wifi-connectivity

Android 2019.03.12

Thread

https://recipes4dev.tistory.com/143 Thread 클래스를 사용하여 새로운 스레드를 생성하고 실행하는 방법은 크게 두 가지가 있습니다. 하나는 Thread 클래스를 상속(extends)한 서브클래스(subclass)를 만든 다음, Thread클래스의 run() 메서드를 오버라이드(override)하는 것이고, 다른 하나는 Runnable 인터페이스를 구현(implements)한 클래스를 선언한 다음, run() 메서드를 작성하는 것입니다.

Android 2019.03.11

Context

Context의 정의Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스.추상 클래스이며 실제..