Ego*_*gor 7 android unit-testing robolectric android-activity
Robolectric允许测试Activity已经开始使用shadowOf(activity).peekNextStartedActivity().但是,如果Activity启动此方法似乎不起作用FLAG_ACTIVITY_CLEAR_TOP.这是直观的,因为此标志的目的不是启动新标志,Activity而是将现有Activity的后备堆栈放在前面.有没有办法测试这种情况?
UPDATE
我的测试场景如下:
涉及3个活动,我们称之为A,B和C.测试中的活动是B,由A.开始.B现在开始C表示结果,当收到结果时,使用FLAG_ACTIVITY_CLEAR_TOP标志返回A. 即使当时堆栈中没有活动A,我也希望它能够启动并通过peekNextStartedActivity().
每当您从活动发送意图时(例如),您都可以使用 set flags 方法:
Intent i = new Intent(MyActivity.this, SomeActivity.class);
i.setFlags(FLAG_ACTIVITY_CLEAR_TOP | SOME_OTHER_FLAGS...);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
在结果活动(示例中的 SomeActivity)上,您可以使用 getIntent 方法:
getIntent().getFlags()
Run Code Online (Sandbox Code Playgroud)
所以真正的问题是:如何将标志拆分为其基本组件(按位或)
基于这篇文章:http : //code.tutsplus.com/articles/understanding-bitwise-operators--active-11301
只需使用您需要的组件检查标志
if ((getIntent().getFlags() & FLAG_ACTIVITY_CLEAR_TOP) != 0)
{
// do something here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |