所以我有一个Android应用程序的问题我给予维护他们在应用程序上有一个callBack,当事情发生时触发,并且有一个runOnUiThread。然而,似乎没有工作但是。当我最小化应用程序并恢复它时...它显示了更改。 (我已经尝试过invalidate和postInvalidate ...唯一可以重新创建它的命令,但它显示黑屏并重新加载应用程序,我不希望这种情况发生)< / p>
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);
}
}