如何在Android应用程序中的活动之间传递数据?

我有一个场景,在通过登录页面登录后,每个activity都会有一个注销button

在点击退出时,我会传递登录用户的session id以注销。 任何人都可以指导我如何保持session id可用于所有activities

任何替代这种情况


最简单的方法是将会话ID传递给用于启动活动的Intent的注销活动:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);

访问意图下一个活动

String s = getIntent().getStringExtra("EXTRA_SESSION_ID");

Intents的文档包含更多信息(请参阅标题为“Extras”的部分)。


在您当前的活动中,创建一个新的Intent

String value="Hello world";
Intent i = new Intent(CurrentActivity.this, NewActivity.class);    
i.putExtra("key",value);
startActivity(i);

然后在新的活动中,检索这些值:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("key");
    //The key argument here must match that used in the other activity
}

使用这种技术将变量从一个Activity传递到另一个。


Erich指出,传递意图附加组件是一种很好的方法。

Application对象是另一种方式,当处理多个活动中的相同状态(而不是必须将其放到/放在任何地方)或比基元和字符串更复杂的对象时,它有时更容易。

您可以扩展应用程序,然后设置/获取您想要的任何内容,并使用getApplication()从任何活动(在同一应用程序中)访问它。

另外请记住,您可能会看到的其他方法(如静态方法)可能会有问题,因为它们可能会导致内存泄漏。 应用程序也有助于解决此问题

链接地址: http://www.djcxy.com/p/4453.html

上一篇: How do I pass data between Activities in Android application?

下一篇: Home key press behaviour