Android 完成一项活动/意图

Android 完成一项活动/意图,android,android-activity,android-intent,Android,Android Activity,Android Intent,我正在制作一个程序,该程序将进入另一个活动以获取一些数据,然后通过intent将数据返回到我的主要活动。我现在的代码确实打开了一个新的活动,它获取并发送数据,但似乎在调用finish()时“重新启动”了我的主活动 问题:如何停止第二项活动并重新启动主要活动 主要活动: Intent intent = new Intent(AndroidVideoPlayer.this, FileChooser.class); intent.putExtra("dir", 1); startActivityFor

我正在制作一个程序,该程序将进入另一个活动以获取一些数据,然后通过intent将数据返回到我的主要活动。我现在的代码确实打开了一个新的活动,它获取并发送数据,但似乎在调用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
次要活动:

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
Intent Intent=newintent(FileChooser.this,AndroidVideoPlayer.class);
intent.putExtra(“stringPath”,intentPath1);
setResult(1,意图);

finish();// 这就是它的工作原理。您需要重写主活动的方法以从意图中获取stringPath。

确定。您的onActivityResult定义中似乎缺少这一行

super.onActivityResult(请求代码、结果代码、数据)


您的活动似乎正在重新创建。尝试覆盖saveInstanceState上的
onCreate
并使用
onCreate上的
savedInstanceState
。它应该会起作用。

@Jon那么你是说onActivityResult从未调用过?要补充Konstantin的答案,请参见此处的另一个示例:我希望它返回到上一个活动,但它似乎重新启动了活动,而不是仅仅返回到它,因为我的所有接口都被重置。当您完成一个活动时,如果希望返回到上一个活动并得到结果,请不要创建新的意图,您应该调用getIntent;Intent=getIntent();按您所做的方式设置结果并完成