Activity MainActivity 에서 SubActivity 를 호출
Activity SubActivity 에서 작업 처리.
처리된 작업 결과 값을 Activity MainActivity 로 반환.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent calIntent = new Intent(this, SubActivity.class);
startActivityForResult(calIntent, 3000);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
switch (requestCode){
// MainActivity 에서 요청할 때 보낸 요청 코드 (3000)
case 3000:
// TODO
break;
}
}
}
}
Intent resultIntent = new Intent();
resultIntent.putExtra("result","");
setResult(RESULT_OK,resultIntent);
finish();
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
}
public class MainActivity extends AppCompatActivity {
// Pre contract
private ActivityResultLauncher<Intent> mPreContractStartActivityResult =
registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult a_result) {
if (a_result.getResultCode() == Activity.RESULT_OK) {
}
}
});
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(getApplication(), SubActivity.class);
mPreContractStartActivityResult.launch(intent);
}
}
Intent resultIntent = new Intent();
resultIntent.putExtra("result","");
setResult(RESULT_OK,resultIntent);
finish();