gpt4 book ai didi

java - Android:将变量传递给非 Activity 类

转载 作者:行者123 更新时间:2023-11-29 05:02:28 24 4
gpt4 key购买 nike

我正在尝试将一个字符串从我的 MainActivity 传递到一个非 Activity 类(通知服务),以便我可以自定义通知消息。我试过使用 Intent 但是它不起作用,因为它是一个基于非 Activity 的类。为什么这样做最好?

我目前正在尝试使用全局变量,但它不起作用。

主要 Activity .java

private String var;
private String a = "Pumpkin";

public String getVar(){
return var;
}
public void setVar(String a){
var = a;
}

通知服务.java

  MainActivity b = ((MainActivity)getApplicationContext());
String var = b.getVar();

即使我在 NotificationService.java 中调用变量 var 也会使应用程序崩溃

最佳答案

1.你可以尝试做静态变量,在任何地方用类引用调用。

 public static  String a = "Pumpkin";//Declare in MainActivity
Use it: String var = MainActivity.a;

2。将 Intent 作为 extras 传递,然后在接收到 intent 的地方获取 extras。

  startActivity(new Intent(MainActivity.this, PropertyListviewActivity.class).putExtra("Key", "Value"));

接收:

 if (intent != null)
if (intent.getExtras() != null)
if (intent.getExtras().getString("Key") != null) {
String recivedString= intent.getExtras().getString("Key");

3.保留共享首选项并在任何你想要的地方检索(不是好的做法)。

4.如果不是 Android 组件类,请尝试传入 Contractor。

关于java - Android:将变量传递给非 Activity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31633510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com