更新时间:2023-11-03 19:56:52
我遇到的问题是mIntroListen.finished();在第二个活动中为null.
The issue I'm getting is mIntroListen.finished(); is null in the second activity.
由于mIntroActivity
实例和IntroActivity
的实际运行实例不同,因此您将始终得到null
.
You will always get null
because mIntroActivity
instance and your actual running instance of IntroActivity
are different.
mIntroActivity = new IntroActivity();
以这种方式创建活动不是一个好主意.要启动Activity
,您应该始终使用startActivity()
.
Creating activity this way is not a good idea. To start a Activity
you should always use startActivity()
.
如果要使用IntroActivity
中的某些数据返回到MainActivity
,或者仅在完成呼叫侦听器后返回,请使用MainActivity
中的startActivityForResult(intent)
.此方法将为您提供设置在IntroActivity
中找到的结果的选项,并且可以通过onActivityResult()
方法在MainActivity
中使用这些结果.
If you want to get back to MainActivity
with some data from IntroActivity
or just back when completes call listener you should use startActivityForResult(intent)
in MainActivity
. This method will give you options to set result you have found in IntroActivity
and you can use those result in MainActivity
by onActivityResult()
method.
对于您的情况,请使用startActivityForResult(intent)
来启动IntroActivity
,并且在完成调用侦听器后,只需完成IntroActivity
即可,然后将在MainActivity
中调用onActivityResult()
方法.然后在onActivityResult()
For your case use startActivityForResult(intent)
to start your IntroActivity
and when completes call listener just finish IntroActivity
then onActivityResult()
method will be called in MainActivity
. And do what you want in onActivityResult()
Check this official link Getting a Result from an Activity and you can also check this answer