我正在制作一个程序进入另一个活动来获取一些数据,然后通过意图将数据返回到我的主要活动。我现在的代码确实打开了一个新的活动,它获取并发送数据但似乎在调用finish()时“重新启动”我的主要活动。
问题:如何停止重新启动主要活动的第二个活动?
主要活动:
Intent intent = new Intent(AndroidVideoPlayer.this, FileChooser.class);
intent.putExtra("dir", 1);
startActivityForResult(intent, requestCode);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("CheckStartActivity","onActivityResult and resultCode = "+resultCode);
// TODO Auto-generated method stub
myPath = data.getStringExtra("stringPath");
textEmpty.setText(myPath);
myUri = Uri.parse(myPath);
mp = MediaPlayer.create(this, myUri);
}
次要活动:
Intent intent = new Intent(FileChooser.this,AndroidVideoPlayer.class);
intent.putExtra("stringPath",intentPath1);
setResult(1,intent);
finish(); // <--- does close activity, but restarts main activity
答案 0 :(得分:3)
它应该如何运作。您需要覆盖主活动的onActivityResult方法以从意图中获取stringPath。
答案 1 :(得分:0)
确定。您似乎在onActivityResult定义中缺少此行。
super.onActivityResult(requestCode,resultCode,data);
答案 2 :(得分:0)
似乎您的活动正在重新创建。尝试覆盖onSaveInstanceState
并使用savedInstanceState
上的onCreate
。它应该工作。