android活动没有停顿

时间:2016-06-22 13:26:31

标签: android android-intent

我有两个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, onPauseNEW_TASK打开了一个新进程,暂停了它们被调用的活动。

我已经阅读了几个关于在Android中切换活动的不同文档但是并没有真正明白如何明确告诉Activity暂停而不再调用onCreate等。

4 个答案:

答案 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)

  1. FLAG_ACTIVITY_NEW_TASK - >此标志将启动新活动所以首先删除它。
  2. 其次,如果你想发送一些数据然后A2到A1然后通过以下方法而不是startActivity()
  3. 发送startActivity
      

    startActivityForResult

    你将在

    中得到一个回调
      

    onActivityResult()