티스토리 뷰

반응형

[android/java] startActivityForResult deprecated, ActivityResultLauncher 으로 대체

startActivityForResult deprecated를 통하여, 더이상 활용하지 못한다.

 

대체 방식으로 ActivityResultLauncher을 사용하면된다.

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

		//Intent 호출 영역
        Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        //startActivityForResult  대체
        mStartForResult.launch(intent);
    }

    // launcher 선언
    ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            result -> {
            //result.getResultCode()를 통하여 결과값 확인
                if(result.getResultCode() == RESULT_OK) {
				//ToDo
                }
                if(result.getResultCode() == RESULT_CANCELED){
				//ToDo
                }
            }
    );

}

 

#ActivityResultLauncher  #startActivityForResult deprecated #startActivityForResult #deprecated #onRequestPermissionsResult #android #java 

반응형
댓글
반응형