java - 在具有不同流程的两个 Activity 之间使用变量

标签 java android process

我通过添加到它的 <activity> 在单独的进程中创建了我的 Base Activity fragmentmanifest :

android:process=":login_exception_process" 

在基本 Activity 中,我启动我的连接对象,并开始下一个 Activity 。但是当我尝试从另一个 Activity 中获取连接对象的实例时,它们是 NULL

Base Activity 启动的对象保存在static 中的单独类中变量。我怎样才能访问这个变量?

最佳答案

将值传递给另一个 Activity

您必须开始您的下一个 Activity,在 Intent 中发送额外的内容。

Intent intent = new Intent(this, NextActivity.class);
intent.putextra("keyName","value");
startActivity(intent);

你的下一个 Activity ,你可以通过这样做来检索这个值:

String data = getIntent().getExtras().getString("keyName");

Here is the documentation for that.


从 Activity 中获取结果

开始另一项 Activity 不一定是单向的。您还可以开始另一项 Activity 并收到返回的结果。例如,如果您想要启动 NextActivity 并将值从 NextActivity 返回到 BaseActivity,您可以使用 startActivityForResult()

Here is the documentation for that.


更新

通过 intent 发送对象可以通过两种方式完成:

伪代码

可序列化

intent.putExtra("MyClass", your_object);  

// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");

可打包

Intent mIntent = new Intent(this, NextActivity.class);  
Bundle mBundle = new Bundle();  
mBundle.putParcelable(PAR_KEY, your_object);  
mIntent.putExtras(mBundle);
startActivity(mIntent);  

尽管 Serializable 似乎是最简单的选择,请遵循此 tutorial它会教你两种方法。


希望对你有帮助。

关于java - 在具有不同流程的两个 Activity 之间使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085750/

相关文章:

java - 如何在java中连续限制超过1个&符号

java - 两个以上缓冲区的优势?

android - 如何在多个设备上运行 logcat?

java - Android 中的信标 - 教程中出现错误

javax.net.ssl.SSLHandshakeException?

java - 如何获得直线和多边形的交点?

java - XStream - 解码 - XML 中指定的类型不可见

c - 我收到对我构建的 shell 的拒绝许可

c# - ProcessStartInfo.Argument 如何考虑参数

process - 'Yield'在Contiki rtos中意味着什么