提交 b16842bb 编写于 作者: B Bin Li

Fix abnormal exit after create engine failed

上级 3e3cd176
......@@ -28,6 +28,7 @@ import org.greenrobot.eventbus.EventBus;
public class AppModel {
private boolean stopClassify = false;
private Handler mJniThread;
public static AppModel instance = new AppModel();
private AppModel() {
......@@ -54,8 +55,18 @@ public class AppModel {
@Override
public void run() {
int result = JniMaceUtils.maceMobilenetCreateEngine(initData.getModel(), initData.getDevice());
if (result == -1 && callback != null) {
callback.onCreateEngineFail();
Log.i("APPModel", "maceMobilenetCreateEngine result = " + result);
if (result == -1) {
stopClassify = true;
MaceApp.app.mMainHandler.post(new Runnable() {
@Override
public void run() {
callback.onCreateEngineFail(InitData.DEVICES[0].equals(initData.getDevice()));
}
});
} else {
stopClassify = false;
}
}
});
......@@ -65,6 +76,9 @@ public class AppModel {
mJniThread.post(new Runnable() {
@Override
public void run() {
if (stopClassify) {
return;
}
long start = System.currentTimeMillis();
float[] result = JniMaceUtils.maceMobilenetClassify(input);
......@@ -76,7 +90,7 @@ public class AppModel {
}
public interface CreateEngineCallback {
void onCreateEngineFail();
void onCreateEngineFail(final boolean quit);
}
}
......@@ -25,7 +25,6 @@ import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.xiaomi.mace.demo.camera.CameraEngage;
......@@ -187,17 +186,29 @@ public class CameraActivity extends Activity implements View.OnClickListener, Ap
}
@Override
public void onCreateEngineFail() {
public void onCreateEngineFail(final boolean quit) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Error");
builder.setMessage("Failed to create inference engine with current setting!");
builder.setMessage("Failed to create inference engine with current setting:\n" + initData.getModel() + ", " + initData.getDevice());
builder.setCancelable(false);
builder.setPositiveButton("Quit", new DialogInterface.OnClickListener() {
builder.setPositiveButton(quit ? "Quit" : "Reset", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
if (quit) {
System.exit(0);
} else {
dialog.dismiss();
resetCpu();
}
}
});
builder.show();
}
private void resetCpu() {
String content = InitData.DEVICES[0];
mSelectPhoneType.setText(content);
initData.setDevice(content);
AppModel.instance.maceMobilenetCreateEngine(initData, CameraActivity.this);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册