Android 完成一项活动/意图
我正在制作一个程序,该程序将进入另一个活动以获取一些数据,然后通过intent将数据返回到我的主要活动。我现在的代码确实打开了一个新的活动,它获取并发送数据,但似乎在调用finish()时“重新启动”了我的主活动 问题:如何停止第二项活动并重新启动主要活动 主要活动: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 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();按您所做的方式设置结果并完成