因此,我在进行维护时遇到了一个 Android 应用程序的问题,他们在应用程序上有一个回调,当某些事情发生时触发,并且有一个 runOnUiThread。但是,它似乎不起作用,但是。当我最小化应用程序并恢复它时......它显示了更改。(我已经尝试过 invalidate 和 postInvalidate ......唯一似乎工作的命令是重新创建,但它显示黑屏并重新加载应用程序,我不希望这种情况发生)
private ServiceCallback<ProductIntoItem> getInfoCallback = new ServiceCallback<ProductIntoItem>() {
@Override
public void onSuccess(final ProductIntoItem productIntoItem) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Tag tag = new Tag("", epcReadings.get(0));
tabLayout.addTab(tabLayout.newTab().setText("info item"));
tabLayout.addTab(tabLayout.newTab().setText("info sku"));
tabLayout.setOnTabSelectedListener(InfoProductActivity.this);
infoItemFragment = InfoItemFragment.newInstance(productIntoItem, location, tag.getSku());
infoSkuFragment = InfoSkuFragment.newInstance(productIntoItem, location, tag.getSku());
initWithFragment(R.id.container_tabs_info, infoItemFragment);
recreate();
}
});
}
@Override
public void onFailure(NetworkException e) {
}
};
编辑
从这部分代码调用回调:(onTagRead 方法是蓝牙连接设备的本机方法。这都在 Running Activity 类中)
@Override
public void onTagRead(String epc) {
if (epc != null) {
rfIdManager.stopTagReading();
epcReadings.add(epc);
}
if (epcReadings.size() >= 1 && epcReadings.size() < 2 && isNetworkConnectionAvailable()) {
network.getInfoItem(epcReadings.get(0), getInfoCallback);
}
}