以下は、問題を説明するための簡単なコード フラグメントです。
メソッド「onActivityResult」に記録されたフィールド「tag」の値が「tag_modified」ではないのはなぜですか?
「startActivityForResult」の非同期呼び出しも試しましたが、そのような問題はありません。
この問題は、Moto Milestone でのみ発生しますが、HTC G7 ではすべてうまくいきます。
public class HelloSnapshot extends Activity {
private static Logger logger = Logger.getLogger(HelloSnapshot.class.getName());
final int REQUESTCODE_SNAPSHOT = 1;
String tag = "tag_initial";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button button = new Button(this);
button.setText("BUTTON");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tag = "tag_modified";
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUESTCODE_SNAPSHOT);
}
});
setContentView(button, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
public void onActivityResult(int requestCode, int resultCode , Intent data) {
switch (requestCode) {
case REQUESTCODE_SNAPSHOT:
if (resultCode == Activity.RESULT_OK) {
logger.info(tag);
}
break;
}
}
}