我有一个启动Activity1Activity2Activity2有一个列表,显示了数据库中的一些值。

第一次启动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/

10-10 01:47