如何在不启动的情况下将值传递给另一个活动?

时间:2013-06-10 08:37:51

标签: android android-intent parameter-passing

我想将活动A中的值传递给活动B而不实际启动活动B(因此这排除了使用Intents和putExtra)。活动B可能会或可能不会启动,但是当它发生时,它需要显示活动A传递给它的值。

我搜索了高低,但找不到任何相关的解决方案来解决这个看似简单的问题。任何帮助将不胜感激!

6 个答案:

答案 0 :(得分:6)

你无法找到解决方案,因为它违背任何逻辑。 如果未启动且可见,活动B将无法执行任何操作。在您不知情的情况下,活动B甚至可能已被系统销毁。

你可以使用很多东西设置一些变量,你的Activity B可以读取它们,例如你的应用程序,XML中的某个地方或者任何随机类。

但是,在开始活动B之前,你实际上不能任何事情,直到你可以,它实际上与给予它有效意图中的额外数据。

答案 1 :(得分:0)

您可以使用shared Preferences。使用这一个Activity可以将Value设置为其中,其他活动可以从中读取。

答案 2 :(得分:0)

因此您需要为活动保留一个值。如果它启动它意味着您必须使用这些值,否则您将丢弃这些值。为此,您可以使用具有所需数据类型变量的单独类,并且可以为此创建getter setter,并且可以使用它。

使用班级

public class GetSet {

    public GetSet() {
        super();
    }

    private static boolean passwordSet = false;

    public static boolean isPasswordSet() {
        return passwordSet;
    }

    public static void setPasswordSet(boolean passwordSet) {
        GetSet.passwordSet = passwordSet;
    }
}

您可以使用GetSet.setPasswordSet(false);访问 和Boolean flag = GetSet.isPasswordSet();

答案 3 :(得分:0)

将值设置为Global:

public class Global {

public static int mValue;   


public static int getValue() {
    return mValue;
}

public static void setValue(int mValue) {
    Global.mValue = mValue;
}

}

答案 4 :(得分:0)

使用全局课程,例如:

public class AppConfig {

    Context context;
    public AppConfig(Context mxt) {

        context = mxt;
    }

    public static String filepath = null;

然后,在onCreate()之前的活动A

AppConfig config;
Context context;

并在onCreate()方法中提出:

context = getApplicationContext();
config = new AppConfig(context);

并且,在onCreate()之前的第二个活动B

AppConfig config;
Context context;

而且,在onCreate()方法中放了这个:

context = getApplicationContext();
config = new AppConfig(context);

并将值设置为您想要的值。希望这会对你有所帮助。

答案 5 :(得分:0)

我一直在寻找答案,但找不到。所以我找到了一种方法。

第一次活动

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("Flag" , true);
startActivity(intent);

第二活动

boolean flag;
flag = getIntent().getBooleanExtra("Flag" ,false);
    if(flag == true)
    {
        this.finish();
    }

因此,现在您可以发送所需的任何数据,它将打开“第二个活动”,然后在您甚至没有意识到的情况下立即将其关闭。您可以使用共享权限来保存数据,以备后用。