2015-07-10 55 views
-3

我想一些String数据发送到在前台运行我以前开活动,而无需调用通过Intents我如何发送一些信息到我的前台活动在android系统

+1

幼稚的方式:将它保存在某个地方(FX:SP),然后将其加载到onResume ... – Selvin

+1

保存它在我不保存在我的外部或内部存储 – HassanUsman

+2

你不保存(SP代表SharedPreferences),你不要使用意图...然后这是不可能的...(旁边,它没有任何敏感 - 前期活动可能或可能不会仍然“活着”) – Selvin

回答

1

最好的方式做到这一点是通过SharedPreferences。 SharedPreferences会将您的数据写入您的应用程序的apk中的键/值中的私人文件,即使您关闭设备,该文件也会持续存在。

您可以在onCreate中初始化SharedPreferences,如下所示: SharedPreferences sharedPreferences = getSharedPreferences(getPackageName(), MODE_PRIVATE)

要存储的值只需拨打: sharedPreferences.edit().putString("myKey", stringValue).commit();

从应用程序的任何地方检索值,初始化SharedPreferences,然后用下面的代码: String myData = sharedPreferences.getString("myKey");

让我知道这是否有助于!

0

你可以使用一个接口来完成这个“诡计”。我会告诉你一个发送String的例子。

创建的接口,如:

public interface Communicable { 
    public void transportString(String data); 
} 

然后你实现这个接口对您活动

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"); 
    } 
} 

您可以做的另一件事是创建一个新类,该类继承应用程序,并使用它来通过您的应用程序传输任何数据。

+0

这是一个多么可怕的想法......永远不要把活动的实例传递给下一个活动......是的,你可以将它用于活动交流的片段......但不是活动间......甚至通过应用程序类...只需将任何ui交互放入transportString中,并且您处于深度sh * – Selvin

+0

呵呵,我从来没打算在活动之间使用它,之前我在_Fragment_和_Activity_之间进行通信。但是,这很好的补充答案。谢谢! –

0

简单的方法共享偏好。硬盘方式Sqlite或txt文件。

相关问题