2015-04-13 69 views
1

我有來自Android文檔的Bluetooth ConnectedThread,並且我想將ConnectedThread變量的值保存到SharedPreference。 我:如何將線程保存到SharedPreference Android

private ConnectedThread mConnectedThread; 

和函數頭:

private class ConnectedThread extends Thread{ 
    public ConnectedThread(BluetoothSocket socket, String socketType){ 
      } 
    } 

mConnectedThread = ConnectedThread(BluetoothSocket socket, String socketType) 

什麼,我需要的是mConnectedThread保存到SharedPreference。

你能幫我嗎?

謝謝!

mConnectedThread值

Thread[Thread-16961,5,main] 
+0

嗨。爲什麼要保存ConnectedThread的值?這個類是從Thread派生出來的,如果你調用ConnectedThread的toString()函數,它只會給你線程的名字。這是你想存儲的價值嗎? –

+0

這是我想要保存的,mConnectedThread的值 - >已在上面添加。在此之後,我想將它還原爲ConnectedThread類型。 –

回答

0

創建BaseActivity,它在Activity2延伸。設置BaseActivity Abstract並創建一個公共靜態Thread TempThread = null;並在那裏保存你的線索BaseActivity.TempThread = mConnected。感謝致電mConnectedThread = BaseActivity.TempThread;

0

你可以什麼也沒保存到共享偏好,除了字符串。 它被放入一個xml文件,編碼甚至不允許一個字符串數組。 你可以嘗試序列化它,並把它變成一個文件

+0

謝謝!你能告訴我如何序列化? –

+0

http://www.tutorialspoint.com/java/java_serialization.htm –

1

如果你想獲得mConnectedThread的值,並將其存儲在SharedPreferences,你可以做到以下幾點:

SharedPreferences sharedPreferences = getApplication().getSharedPreferences("Surface", MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putString("ConnectedThread", mConnectedThread.toString()); 
editor.commit(); 

要檢索ConnectedThread的價值從SharedPreferences:

SharedPreferences sharedPreferences = getApplication().getSharedPreferences("Surface", MODE_PRIVATE); 
String sTest = sharedPreferences.getString("ConnectedThread", "DefaultValue"); 
+0

崩潰在'.setname()' 由於:java.lang.NullPointerException異常 在itbstudios.com.temperatureprobes.bluetooth.BluetoothCommunicationService.write(BluetoothCommunicationService。 java:219) –

+0

可以請你發佈其他源代碼和Logcat嗎?謝謝。 –

+0

我不能那樣做合同。但我可以告訴你該應用程序的模塊是如何工作的以及我正在嘗試做什麼。 App開始,您選擇了藍牙設備和conect。比你通過藍牙將數據寫入arduino的其他活動要好。問題是在secound活動中,我必須用write函數重新調用類,它將ConnectedThread重新初始化爲null。就像我沒有連接一樣,即使我連接了。 –

相關問題