java - 如何检查用户来自哪个 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));
}
});
}
解决方案
利用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
}
}
推荐阅读
- python-3.x - 如何在非 Sequential() Keras 模型的层中设置权重和梯度权重
- r - 如何在 1 个图中绘制多个数据集的概率密度函数图?
- three.js - A-Frame:0.9.0 和 0.9.2 版本之间的“透视截图”功能中断?
- docker - 无法使用手动 iptables 在 Dockerfile 中运行 apt-get update
- javascript - JQuery - 单击切换按钮时,附加表会不断增加自身或复制自身
- powershell - 处理目录存在异常
- c++ - 增强器使用先前的 DMatrix 后 XGDMatrixCreateFromMat 失败
- python-3.x - 通过 Python 从 Selenium 使用 WebDriverWait 时不打印异常消息
- swift - 找不到架构“arm64”的模块“TLSphinx”;发现:i386
- javascript - 什么是 HTMLDocument 函数?