У меня странная проблема. В обработчике прерывается выполнение кода. Окружающая среда - автомобильная машина системы Android. Во время прошлогоднего тестирования этого проекта я сталкивался с проблемой более пяти раз. Но посмотрите журнал , Я не могу понять причину этой проблемы。
Кто знает причину этой проблемы? Это вызвано JVM или Android обработчиком или процессором и почему?
Поскольку код проекта завершен, простыми кодами проблемы и явлением являются следующие:
//init logic code
HandlerThread ht = new ThandlerThread("sample");
ht.start();
Handler handler = new Handler(ht.getLooper()){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 1:
test();
break;
}
};
//send message logic
Message message = handler .obtainMessage();
message.what= 1;
handler .sendMessage(message);
//test method impl
public void test(){
Log.d("test","execute test start");
Log.d("test","before a");
simpleA();//some operation very simple and you can know this method whether execute by log and
app’s ui state
//some log
Log.d("test","after a");
Log.d("test","before b");
simpleB()
Log.d("test","after B");
Log.d("test","test log1");
Log.d("test","test log2");
Log.d("test","execute test end");
}
Номинально и Большую часть времени method метод теста может очень легко выполнять извинения. Иногда, когда метод теста выполняется, он может «запустить запуск теста», но после того, как logi c этого кода не будет выполнен, или «test log2» напечатает журнал, но «выполнить тест» end ", или" before b "печатать, но метод simpleB и код позади не выполняются. Это не ошибка журнала, потому что вы можете анализировать выполнение кода, оставаясь неизменным с пользовательским интерфейсом и данными. Информация о процессоре: Freescale Semiconductor IMX6QP