[英]Android: start a worker thread from UI thread hang the application
我寫了下面的代碼。 每次我運行它時,應用程序都會停止。 你能幫我任何想法嗎?
如果我不啟動工作線程,代碼就可以了。 我的問題是:
我可以從 UI 線程上的onCreate
function 啟動工作線程嗎?
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private Bluetooth mBluetooth = null;
private Gauge mGauge;
private Obd2 mObd2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.support.v7.widget.Toolbar myToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
mGauge = findViewById(R.id.gauge1);
mGauge.setValue(120);
mBluetooth = new Bluetooth();
try {
mBluetooth.connect();
} catch (IOException e) {
}
mObd2 = new Obd2(mBluetooth);
mObd2.command(obd2CommandEnum.RESET);
runRPMThread();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.menu, menu);
return true;
}
private void runRPMThread() {
new Thread() {
public void run() {
while (true) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
mGauge.setValue(mObd2.rpm());
}
});
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
}
剛剛調試到問題...在 mObd2.rpm() function 中有一個 null 指針。 我需要通過藍牙連接到我的汽車來運行應用程序。 沒有那個,我有一個 null 指針......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.