2015-07-10 56 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文件。

相關問題