Java Android 开发 : Is it bad practice to reference other classes static Strings get Intent parameters?

标签 java android android-intent

假设我想传递一个带有 Intent 的字符串。这是不好的 OOP 实践吗:

public class MessageSender extends Activity
{
    public static final THE_STRING = "my message";
    ...
        String value = "This is what I need to send";
        Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
        displayResultsIntent.putExtra(MessageSender.THE_STRING, value);
    ...
}

public class MessageReceiver extends Activity
{
    ...
        Intent intent = getIntent();
        String yourMessage = intent.getStringExtra(MessageSender.THE_STRING);
    ...
}

我的直觉告诉我应该有更好的方法。看来如果我在 MessageReciever 中使用另一个类的静态变量,我也可以这样做

"This is what I want to send"

静态并直接在 MessageReceiver 中引用。

我可以在创建 Intent 的方法的注释中指定字符串参数将是“我的消息”。但如果您更新参数名称而不更新注释,这似乎更容易出错。

我读到您应该尝试避免通过使用彼此的变量将类绑定(bind)在一起。使用 Intent 时我们是否需要做一些作弊?

最佳答案

只需在应用程序的任何类中直接使用 MessageSender.THE_STRING(因为静态),因为在构建 APK 后,它会直接分配给该方法或变量。

您的代码示例

public static final THE_STRING = "my message";
Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
displayResultsIntent.putExtra(MessageSender.THE_STRING, value);

构建APK后,上面的代码转换为

Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
displayResultsIntent.putExtra("my message", value);

String yourMessage = intent.getStringExtra("my message");

关于Java Android 开发 : Is it bad practice to reference other classes static Strings get Intent parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760596/

相关文章:

java - 我怎样才能实现这个 REST API 并保持 DRY?

java - 为什么斯坦福 CoreNLP 服务器将命名实体拆分为单个标记?

java inputStream一次只读取一个标签

Android - 在 TextView 上缩进文本

android - 如何在 ContentProviderOperation 中添加联系人图片?

android - 如何自定义一个TimePickerDialog?

java - 在 Android 设备上访问 SD 卡上的 PDF 文件

android - Android 中的 Intent 是什么?

Android M - 权限设置重定向(INTENT ACTION)

java - 滚动到焦点文本字段