我的onActivityResult方法从未被调用。我正在使用Android 2.2。
我正在使用Tabhost,其中TabHost包含TabGroup,TabGroup包含单独的Activities。
我的一个单独的Activity运行以下Intent:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 0);
这会加载我的图库应用程序,我使用默认的Android图库选择一张图片,但当我返回我的活动时,我的onActivityResult没有被调用。
它看起来像这样 - 我在
if(resultCode == 0)
处设置了断点,所以现在,我的onActivityResult的逻辑不重要。 public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 0) {
if (requestCode == 0) {
Uri selectedImageUri = data.getData();
//OI FILE Manager
filemanagerstring = selectedImageUri.getPath();
//MEDIA GALLERY
selectedImagePath = getPath(selectedImageUri);
//DEBUG PURPOSE - you can delete this if you want
if(selectedImagePath!=null)
System.out.println(selectedImagePath);
else System.out.println("selectedImagePath is null");
if(filemanagerstring!=null)
System.out.println(filemanagerstring);
else System.out.println("filemanagerstring is null");
//NOW WE HAVE OUR WANTED STRING
if(selectedImagePath!=null)
System.out.println("selectedImagePath is the right one for you!");
else
System.out.println("filemanagerstring is the right one for you!");
}
}
}
生命周期函数在选项卡主机/选项卡组中的活动中经常以无序和间歇性的方式被调用,所以我检查了关闭画廊后正在调用哪些生命周期函数(这发生在我从Android画廊中选择图像后)。
唯一被调用的是TabHost活动中的onResume()。因此,我尝试将完全相同的onActivityResult()方法放在我的TabHost类和TabActivity类中。在方法开头都设置断点。
这两个类都没有被调用。
现在我不知道该怎么办,如果内置的任何接收方法都不会响应,则如何从我的应用程序中获取来自画廊应用程序的结果。
由于我知道我的主TabHost会调用onResume(),因此我尝试添加Intent graphics = getIntent()以查看它是否会接收来自画廊选择的数据,但它并不会,因此我也不知道如何在onResume()方法中运行逻辑。
欢迎提供解决方案! :)