我有两个Android活动(让我们称之为A1和A2)。第一个目的是显示几个线性布局项目。它还有一个添加新项目的按钮。使用以下意图单击添加按钮时:
-> String s = "123hello123boy123guy123girl"
-> s.substring(0, s.lastIndexOf("123"));
| Expression value is: "123hello123boy123guy"
-> s.substring(s.lastIndexOf("123"));
| Expression value is: "123girl"
应用程序应切换到A2 暂停第一个。当访问A2上的类型时,我切换回A1:
//...
Intent intent = new Intent(this, CreateActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//...
意图,在布局中添加新项目。
现在我有了每次从A2切换到A1时调用的//...
Intent intent = new Intent(super.getContext(), HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.putExtra("type", this._type);
super.getContext().startActivity(intent);
//...
方法。这是正常的Android行为吗?
据我了解活动生命周期,标记onCreate, onResume, onPause
和NEW_TASK
打开了一个新进程,暂停了它们被调用的活动。
我已经阅读了几个关于在Android中切换活动的不同文档但是并没有真正明白如何明确告诉Activity暂停而不再调用onCreate等。
答案 0 :(得分:1)
我认为你的活动A1会创建2次,因为你有一个并在A2活动中创建另一个,所以你可以在没有
的情况下启动活动A2(Intent.FLAG_ACTIVITY_NEW_TASK)
标记,而不是需要返回A1调用时
A2.this.finish()
认为这会有所帮助,A1 onPause将开始调用
答案 1 :(得分:1)
OnPause()
。在您的情况下,当下一个活动启动时,第一个活动会调用onStop()
。只有在屏幕中显示警告框或对话框bix时才会调用onPause()
。尝试在onStop()
中编写代码。
答案 2 :(得分:1)
现在我有了onCreate,onResume,onPause方法,每当我从A2切换到A1时都会调用它们。
这是正常的,因为您要查询使用super.getContext().startActivity(intent);
只需在A2内拨打finish即可返回A1。
您还可以将标志Intent.FLAG_ACTIVITY_REORDER_TO_FRONT添加到意图中。 A2活动不会被破坏。
答案 3 :(得分:0)
startActivityForResult
你将在
中得到一个回调onActivityResult()