【问题标题】:Android: Changing extras to an intentAndroid:将附加内容更改为意图
【发布时间】:2011-06-28 18:57:50
【问题描述】:

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

在我的主要活动中从 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);
    }

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

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();
}

【问题讨论】:

  • 您可以添加用于从意图中设置字符串的代码吗?
  • 代码现已上线。它实际上不是字符串,因为您不能在字符串上使用 switch。它是一个表示字符串的枚举。感谢您提供的任何帮助。

标签: android android-activity android-intent extras


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多