如何在android中向前台活动发送一些信息

如何在android中向前台活动发送一些信息,android,android-activity,Android,Android Activity,我想将一些字符串数据发送到我以前打开的活动,该活动在前台运行,无需通过意图调用。最好的方法是通过SharedReferences。SharedReferences会将您的数据写入应用程序apk中的密钥/值中的私有文件,即使您关闭设备,该密钥/值也会保持不变 您可以在onCreate中初始化SharedReferences,如下所示: SharedReferences SharedReferences=GetSharedReferencesGetPackageName,模式\私有 要存储值,只需调

我想将一些字符串数据发送到我以前打开的活动,该活动在前台运行,无需通过意图调用。最好的方法是通过SharedReferences。SharedReferences会将您的数据写入应用程序apk中的密钥/值中的私有文件,即使您关闭设备,该密钥/值也会保持不变

您可以在onCreate中初始化SharedReferences,如下所示: SharedReferences SharedReferences=GetSharedReferencesGetPackageName,模式\私有

要存储值,只需调用: SharedReferences.edit.putStringmyKey、stringValue.commit

要从应用程序的任何位置检索该值,请初始化SharedReferences,然后使用以下代码: 字符串myData=SharedReferences.getStringmyKey


如果有帮助,请告诉我

您可以使用一个接口来完成此操作。我将向您展示一个发送字符串的示例

创建一个接口,如:

public interface Communicable {
    public void transportString(String data);
}
然后在活动上实现此接口:

要完成此操作,请在新类的构造函数中,将活动用作参数并传递给它:


您可以做的另一件事是创建一个扩展应用程序的新类,并使用它在应用程序上传输任何数据。

easy way shared preference。硬方式Sqlite或txt文件。

简单方式:将其保存在fx:SP的某个位置,然后在恢复时加载…将其保存在我不保存在外部或内部存储的位置您不需要saveSP代表SharedReferences,您不需要使用Intent。。。那就不可能了。。。除此之外,它没有任何意义-上一个活动可能仍然存在,也可能仍然不存在,是否有可能构建一个完全没有编码的应用程序?这是一个多么糟糕的想法。。。永远不要将活动实例传递给下一个活动。。。是的,您可以使用它进行片段到活动的通信。。。但不是互动。。。即使通过应用程序类。。。只要将任何ui交互放到transportString中,您就陷入了深深的sh*哦,我从来没有打算在活动之间使用它,我以前用于片段和活动之间的通信。但在答案中加上这一点很好。谢谢
public class MyActivity extends Activity implements Communicable {
    //any code

    @Override
    public void transportString(String data) {
        //do whatever what you wants
    }

    //any code
}
public class MyClass {
    private final Communicable communicable;

    public MyClass(Communicable communicable) {
        this.communicable = communicable;
    }

    public void myMethod() {
         //any code
         communicable.transportString("example");
    }
}