ala*_*and 0 java android arraylist
是否可以ArrayList在扩展的类中使用Thread?我已经写了一些代码来从蓝牙序列中读取它正在工作,但我添加了一个ArrayList跟踪我正在阅读的内容.但是,我正在NullPointException访问任何访问结果的行.我知道这ArrayList不是线程安全的(虽然我可能不完全理解这意味着什么)所以我可能会尝试做不可能的事情,但我想我会与专家核实,因为ArrayLists非常容易使用.
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private List<String> results;
public ConnectedThread(BluetoothSocket socket) {
Log.d(TAG, "create ConnectedThread");
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
List<String> results = new ArrayList<String>();
// Get the BluetoothSocket input and output streams
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) {
Log.e(TAG, "temp sockets not created", e);
}
mmInStream = tmpIn;
mmOutStream = tmpOut;
init();
}
private void init(){
code = new byte[16];
checksum = 0;
tempbyte = 0;
bytesread = -1;
if(!results.isEmpty()){
Log.i(TAG, "Already have found: " + results.size() + " things.");
}
}
public void run(){
//do things
}
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中,您创建了一个与实例ArrayList同名的本地ArrayList引用,并初始化它.
List<String> results = new ArrayList<String>(); // This creates a local arraylist
Run Code Online (Sandbox Code Playgroud)
所以,你的实例ArrayList引用仍然是null.将该行更改为:
results = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)