Android 如何知道活动是否已从特定目的返回

Android 如何知道活动是否已从特定目的返回,android,android-lifecycle,Android,Android Lifecycle,在我的活动中,我做了很多操作,并为从编辑文本和单选框中获取的不同变量设置值。但是,一个控件(按钮)会触发联系人选择器意图,一旦用户选择了联系人,我会在其他文本框中填充该联系人的姓名和号码。然而,假设每次用户从pick contact intent返回时,我的onCreate似乎再次执行,我如何知道onCreate是否被恢复,或者在哪里保留一个选项卡 我的联系人选择代码: Bt3.setOnClickListener(new View.OnClickListener() {

在我的活动中,我做了很多操作,并为从编辑文本和单选框中获取的不同变量设置值。但是,一个控件(按钮)会触发联系人选择器意图,一旦用户选择了联系人,我会在其他文本框中填充该联系人的姓名和号码。然而,假设每次用户从pick contact intent返回时,我的onCreate似乎再次执行,我如何知道onCreate是否被恢复,或者在哪里保留一个选项卡

我的联系人选择代码:

      Bt3.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            flagchk++;
            Intent i = new Intent(Intent.ACTION_PICK,
                    ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(i, 1);

        }
    });

您应该使用
startActivityForResult
,以便在
onActivityForResult
中获得结果。不管怎样,回答你的问题。为了知道它是否调用了
onCreate
,可以声明以下变量:
private boolean onCreate

onCreate
中,将其设置为
true


onStop
中,将此设置为
false

我使用了相同的方法调用我的联系人列表,但是它似乎再次调用了create,我不想再次调用,请查看我编辑的问题以获取特定代码。您是否在片段或活动中使用此选项?在活动中,实际上我使用复选框生成自定义弹出窗口(使用onCheck Change listener)。但是,当我的活动从联系人选取器返回时,我的所有onCheck ChangeListener都会自动重新启动,这会进一步提供不需要的弹出窗口。有没有办法在OnCreate之外为onCheck ChangeListener编写代码?嗯,这很奇怪。你确定没有调用finish()吗;或在清单集中noHistory=“true”?