gpt4 book ai didi

Android:将附加功能更改为 Intent

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:25 25 4
gpt4 key购买 nike

我有一个在许多不同 Activity 之间切换的应用程序。一个 Activity ,我的主要 Activity ,其行为取决于应用程序中哪个 Activity 启动了主要 Activity 。我想我可以通过让所有其他 Activity 将一个名为“launcehdFrom”的额外内容放入 Intent 中来记录它,其中包含一个字符串,该字符串具有称为主要 Activity 的 hte Activity 的名称。我遇到的问题是,一旦设置了该值,它就不能被其他 Activity 覆盖。我还没有找到一个很好的直接方法来做到这一点。有什么建议吗??

以下代码是在我的主要 Activity 中从 onResume() 调用的:

    private void processIntentRequest(){
Intent intent = getIntent();
ProcessIntentRequestType caller = (ProcessIntentRequestType)intent.getSerializableExtra("launchedFrom");
switch(caller){
case startUpActivity:
load(this.myObj);
break;

case otherActivity:
int uri = integer.parseInt(this.getIntent().getExtras().getString("uri"));
load(this.myObj, uri);
break;

default:
load(this.myObj, 1);
}

这是第一次启动主要 Activity 的代码:

public void launchMainActivity(Obj myObj){
Intent launchMain = new Intent(this, mainActivity.class);
login.putExtra("launchedFrom", ProcessIntentRequestType.startupActivity);
startActivity(launchMain);
}

这是在启动 Activity 至少加载一次后从其他 Activity 启动主 Activity 的代码:

protected void launchMainActivity(Obj myObj, HelperObj helper) {
String uri = helper.uri;
Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.putExtra("uri", uri);
mainActivityputExtra("launchedFrom", ProcessIntentRequestType.otherActivity);
startActivity(mainActivity.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
finish();
}

最佳答案

您在调用 startActivity 时使用了 FLAG_ACTIVITY_SINGLE_TOP,它有一些值得注意的行为。在这种情况下,覆盖 onNewIntent并从那里调用 setIntent。之后,平台将调用 onResume,您对 getIntent 的调用将返回新的 Intent 。

关于Android:将附加功能更改为 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com