Java 代码执行在HandlerThread中中断了几次
我有一个奇怪的问题。handlerthread中有代码执行中断。环境是安卓系统的汽车机器。在这个项目去年的测试中,我已经遇到了五次以上的问题。但是看到日志,我不知道这个问题的原因 谁知道这个问题的原因?它是由JVM或Android handlerthread或CPU引起的,为什么 由于项目代码复杂,问题简单代码和现象如下:Java 代码执行在HandlerThread中中断了几次,java,android,jvm,cpu,android-handlerthread,Java,Android,Jvm,Cpu,Android Handlerthread,我有一个奇怪的问题。handlerthread中有代码执行中断。环境是安卓系统的汽车机器。在这个项目去年的测试中,我已经遇到了五次以上的问题。但是看到日志,我不知道这个问题的原因 谁知道这个问题的原因?它是由JVM或Android handlerthread或CPU引起的,为什么 由于项目代码复杂,问题简单代码和现象如下: //init logic code HandlerThread ht = new ThandlerThread("sample"); ht.start(); Han
//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");
}
通常和大多数情况下,测试方法可以很容易地执行。在执行测试方法时,有时可能会“执行测试开始”日志打印,但在该代码的逻辑不执行之后,或者“测试日志2”日志打印,但“执行测试结束”,或者“在b之前”打印,但simpleB方法和后台代码不执行。这不是日志丢失,因为您可以分析代码,执行的ui和数据保持不变。
cpu信息为飞思卡尔半导体IMX6QP