有意图传递文件,我该如何检索它

这是我要经过的。 pictureFile是一个File

 Intent intent = new Intent (context, ShowPicActivity.class); intent.putExtra("picture", pictureFile); 

在下一个活动中,我使用其中一个吸气剂来获取它?

Intent intent = getIntent(); …..?

请尝试以下方法:

 YourPictureClass picture = (YourPictureClass)getIntent.getExtras().get("picture"); 

通过在Intent调用getExtras() ,您将获得Bundle一个实例。
使用Bundle类中的普通get() ,您可以读取传递给调用Intent每个Object 。 您唯一要做的就是将它解析回您的对象是其实例的类。

文件实现可序列化 (首先检查通过意图发送对象。)( 来源 )

所以你可以这样做,只需将生成的对象转换为File,如下所示:

 File pictureFile = (File)getIntent.getExtras().get("picture"); 

应该没问题。 (它使用’对象’的getter,它需要一个可序列化的对象并返回它。演员阵容应该足够了。)

你可以像这样发送:

intent.putExtra("MY_FILE", myFile);

并检索它像这样:

File myFile = (File)intent.getSerializableExtra("MY_FILE");

但是 ,将文件作为字符串引用发送可能更好(任何人?),在这种情况下,您可以发送:

intent.putExtra("MY_FILE_STRING", myFile.toString());

并检索/重建如下:

File myFile = new File(intent.getStringExtra("MY_FILE_STRING"));