首页 > 解决方案 > 如何检查用户来自哪个 onResume

问题描述

我有个问题。下图可视化了我的问题。我们从 App 1 开始并按下按钮。现在我们要么看到 app2 的屏幕,要么看到设置屏幕。现在,当我按下后退按钮(在 app2 和设置中标记为红色圆圈)时,我们回到 app1 屏幕。但我想知道的是我们从哪个屏幕回到 app1 屏幕。

在此处输入图像描述

    @Override
        protected void onResume() {
            super.onResume();

        // if(from setting) {
            // do this
           }

            NfcManager manager = (NfcManager) this.getSystemService(Context.NFC_SERVICE);
            NfcAdapter adapter = manager.getDefaultAdapter();
            if (adapter != null && adapter.isEnabled()) {
                   Intent userHomeScreen = new Intent(getApplicationContext(), UserHomeActivity.class);
                    startActivity(userHomeScreen);

            }
        }



protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nfc_setting);

        NfcManager manager = (NfcManager) this.getSystemService(Context.NFC_SERVICE);
        NfcAdapter adapter = manager.getDefaultAdapter();
        if (adapter != null && adapter.isEnabled()) {
            FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
            if (currentUser != null){
                Intent userHomeScreen = new Intent(getApplicationContext(), UserHomeActivity.class);
                startActivity(userHomeScreen);
            }else{
                Intent loginScreen = new Intent(getApplicationContext(), LoginActivity.class);
                startActivity(loginScreen);
            }
        }
        else {
            btn_nfc_navigate_setting = findViewById(R.id.btn_nfc_navigate_setting);

            btn_nfc_navigate_setting.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(Settings.ACTION_NFC_SETTINGS));
                }
            });
        }

标签: javaandroidandroid-studio

解决方案


利用startActivityForResult()

从 App1 到 App2 或设置:

int FLAG_APP2 = 1
Intent i = new Intent(this, App2.class);
startActivityForResult(i, FLAG_APP2);

然后在 App2 按钮中点击:

finish();

然后在 App1 覆盖onActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == FLAG_APP2) {
        //here you know this is from App2 Screen
    }
}

推荐阅读