public static boolean selectPicturelock;
public static Handler selectPictureHandler;
public static byte] selectPictureData;
…
…
protected void onCreate(Bundle savedInstanceState){
...
selectPictureHandler = new Handler() {
public void handleMessage(Message msg)
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, 1);
}
};
...
}
public static byte] select()
{
selectPicturelock = true;
Message msg = new Message();
selectPictureHandler.sendMessage(msg);
// while (selectPicturelock) {
// ;
// }
return selectPictureData;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
…
}
通过JNI触发select函数以后,注释掉while (selectPicturelock)那句话,是可以正常的触发onActivityResult的。如果不注释的话,就无法触发。
但是由于程序需要,那个位置必须锁住,等到用户选择了照片以后才能返回结果。否则cocos2dx端会处理没有返回结果的情况然后会出错。
于是就死锁了……
谁能告诉我该怎么搞……