Mar*_*aiß 5 android qr-code exception zxing android-fragments
如果我通过ZXing 2.0库执行QR码扫描,我在启动片段时遇到了一些问题.
我有这个例外:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {fraiss.yucrowd/fraiss.yucrowd.activities.ScanQrCode}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState*
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时:
@Override
public void onCreate(Bundle bundle) {
// TODO Auto-generated method stub
super.onCreate(bundle);
setContentView(R.layout.scan_qr_code);
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
Log.d("MENU", "Scan result: " + contents + " as " + format);
// Load details for qr code
FragmentTransaction fragmentTransaction = getSupportFragmentManager()
.beginTransaction();
Fragment fragmentDetails = new FragmentDetails(
contents);
fragmentTransaction
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.replace(R.id.fragment_main,
fragmentDetails);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.d("MENU", "Scan canceled");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么会这样.是否无法在ActivityResult结束时启动Fragment-Transaction?
Thx提前为您提供帮助.
这是可能的onActivityResult之前叫onResume,你不能添加新的片段活动已经ATLEAST调用之前onResume.
因此,您需要存储所有数据onActivityResult,检查onResume并在那里执行片段更改.
这基本上是因为您的活动已暂停,并onActivityResult在之后调用onSaveInstanceState,因此出现消息:“无法在 onSaveInstanceState 之后执行此操作”。保存 requestCode、resultCode 和 Intent,并检查onResume是否有任何需要处理的内容。
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |