ActivityResultLauncher 使用跳转activity时无法收到回传
package com.lanny.navigationdemo;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
public class OneActivity extends AppCompatActivity {
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
TextView tv = findViewById(R.id.tv);
tv.setText("One");
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(OneActivity.this,TwoActivity.class);
intent.putExtra("sss","sssss");
// startActivityForResult(intent,1000);
mResultLauncher.launch(intent);
}
});
}
ActivityResultLauncher mResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() {
@Override
public void onActivityResult(ActivityResult result) {
Log.e(getClass().getSimpleName(),"onActivityResult");
if (result.getData() != null ) {
Log.e(getClass().getSimpleName(),result.getData().getStringExtra("msg")+",resultCode:"+result.getResultCode());
}
}
});
// @Override
// protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// Log.e(getClass().getSimpleName(),"onActivityResult()");
// }
}
Intent intent = new Intent();
intent.putExtra("msg", getClass().getSimpleName()+"发送finish");
setResult(Activity.RESULT_OK, intent);
finish();
无法收到回传,但是这两种方式跳转activity使用onActivityResult(int requestCode, int resultCode, @Nullable Intent data)都可以接收到,使用ActivityResultLaunche无法接收到
没解决,结题了