我有一个启动Activity1
的Activity2
。 Activity2
有一个列表,显示了数据库中的一些值。
第一次启动Activity2
时,列表显示正确的信息,但是如果我按后退按钮,然后再次启动Activity2
,它将正确地从数据库中加载信息,但不会显示在列表中。
从Activity2
开始Activity1
的代码:
final Intent int2 = new Intent(getActivity(), CombinationsManagerActivity.class);
MyActivity.insertSomeExtraInfoToTheIntent(int2, currentEmployee.id);
getActivity().startActivity(int2);
Activity2
列表代码是这样的(当活动在服务器上注册时(在onResume之后),我将其称为):private void fillList() {
list = (ListView) findViewById(R.id.list_combinations);
ZKEmployeeLoginCombination combinations = ZKEmployeeLoginCombination.selectLoginCombinationsByEntityID(this, idEmployee);
LoginCombinationsListAdapter adapter = new LoginCombinationsListAdapter(this, combinations, enrolledTypes);
list.setAdapter(adapter);
}
另外,
Activity2
清单声明: <activity
android:name="com.blabla.android.app.employeemanagementv3.CombinationsManagerActivity"
android:label="@string/combinations_manager" >
</activity>
任何帮助,将不胜感激。
最佳答案
最后,我在代码上发现了该错误:对于项目要求,我们保留一些结构来充当服务器事件的侦听器。 registration
是其中之一。
从活动中注册侦听器的方法是:
private static IncomingEventHandler eventHandler = new IncomingEventHandler();
...
if(eventHandler.get(this.name) == null){
eventHandler.add(this.name, this);
}
因此,我保留了先前活动的参考,然后,当该活动收到
registration
事件时,我们将在后期进行操作:referenceToActivity.doSomeStuffOnUIThreadAfterRegister();
第一次运行良好,但是在第二次执行中referenceToActivity指向第一个活动
关于android - 第二次启动 Activity 时的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17085530/