所以我一直试图让我的应用程序通过intent运行一个Activity并且它工作正常,当我然后分配finish();
方法时,它返回到调用它的活动。我唯一不理解的是,我不确定被调用的Activity在前面是否被置于onPause。我试图在被调用者Acitivty的onPause()
方法中设置Toast消息,但它不会出现。
我首先尝试使用startActivity(intentname)
调用第二个Activity,然后在第一个Acitivty调用finish()
方法,然后我尝试使用startActivityForResult()
(即使我不喜欢确实需要从被调用的Activity 方法接收任何信息,并用onActivityResult()
关闭它。
我找不到任何关于这些Activity方法对调用另一个Activity的Activity的副作用的信息。所以我想知道是否有人可以帮助我?
// Thx提前
答案 0 :(得分:2)
根据Activity的文档,当另一个Activity放在它前面时,将调用onPause()生命周期方法。
http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
如果被调用的Activity是半透明的,那么也会调用onStop(),但是如果您的初始Activity根本不可见,则不会调用onStop()。
值得注意的是,当你在被调用的Activity上调用finish()时,onResume()将在调用者(和onStart()上调用,假设onStop()也被调用)
答案 1 :(得分:1)
快速回答您的问题:如果活动A开始活动B,则运行A的onPause方法。我认为如果B不是全屏,可能会有例外情况,但这只是我刚才在文档中读到的东西的暂时记忆。
至于为什么你的吐司没有显示 - 你还记得吗?显示()吗?我总是忘记那样做。如果在活动暂停时触发它们也会被错过,因为它的上下文消失了。有一种更简单的方法来测试它 - 只需使用Log方法。例如,Log.d("My app name", "onPause was just triggered");
“我的应用名称”字符串的目的是让您在LogCat中按其过滤。如果您不知道如何显示LogCat,并假设您正在使用Eclipse,请参阅this answer to another question。
答案 2 :(得分:0)
让它起作用,对onResume()的目的有点困惑,我想在第一个Activity中取消onActivityResult(),这样第二个Activity就会在finish()