android:暂停一个活动,直到另一个完成

时间:2010-05-12 14:48:06

标签: android multithreading wait workflow-activity

当我的应用程序启动时,它会检查它是否已存储登录凭据。如果没有,则启动另一个活动以提示用户输入这些凭据。我的问题是,当启动提示活动时,第一个活动继续执行并以空指针结束,因为提示活动尚未返回所需的数据

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    tv = new TextView(this);
    setContentView(tv);

    promptForLoginInfo(); //method creates intent and starts activity

    displayCredentials(); //prints data to screen
}

输出读取:“null”,因为程序在登录提示活动返回之前执行“displayCredentials()”。

任何人都知道该怎么做?

3 个答案:

答案 0 :(得分:5)

您的“promptForLoginInfo()”方法应该调用startActivityForResult。不应在onCreate()方法中调用“displayCredentials()”方法,而应使用onActivityResult方法。

答案 1 :(得分:1)

在提示登录信息();你需要启动activityForResult。 然后你需要移动显示Credentials();从onCreate到onActivityResult

答案 2 :(得分:0)

在调用displayCredentials()之前,您是否尝试检查存储的凭据?如果找不到凭据,您可以通过startActivityForResult()方法启动活动,并在提示活动完成onActivityResult()后调用displayCredentials()。