numaralı çocuk parçalarını ekleme Android uygulamamdaki başka bir parçacığa bir alt parçası eklemekle ilgili bir sorun yaşıyorum.Ayrı bir iş parçacığında
@Override
public View onCreateView(blah) {
Thread initializeStateThread = new Thead() {
public void run() {
// Make some requests to get some data that determines
// which child fragment to display
state = // Some state that corresponds to a child frag
// Method that set's the child fragment based on |state|
setChildFragment(state);
}
}
initializeStateThread.start()
// Do a bunch of other stuff
return view;
}
setChildFragment(State state) {
Fragment fragment = null;
switch (mState) {
case CASE_1:
fragment = new DriverFindSpotFragment();
break;
case CASE_2:
fragment = new DriverNavigationFragment();
break;
case CASE_3:
fragment = new DriverArriveSpotFragment();
break;
}
getActivity().runOnUiThread(new Runnable() {
@Ovverride
public void run() {
getChildFragmentManager().beginTransaction().
replace(R.id.driver_fragment_container, fragment).commit();
};
}
Ancak, bu yalnızca zamanın yaklaşık% 50'sini çalışır: Üst fragmanı
Böyle bir şey var. Çocuk fragmanının diğer% 50'si sadece ortaya çıkmaz (bir hata ya da herhangi bir şey yoktur). Sorunun, ebeveynin görüşünün onCreateView biçiminde döndürülmesinden sonra bir çocuk parçası eklemeye çalıştığım gerçeğiyle ilgili olduğunu düşünüyorum.Ana parçacığı ikinci bir ya da iki kez uyumaya zorlarsam, sorunun ortadan kalktığını fark ettim (bu durumda görünümün geri döndürülmesinden önce alt parçacığın ayarlanmasından dolayı farz ediyorum).
Hiç benzer bir sorunu olan var mı? Ya da benim bu teorimin neden bu konuyla ilgili olduğunu onaylayabilir mi? Sen yöntemini şöyle deneyebilirsiniz
Neden parçacığı herhangi bir özel amaçla değiştiriyorsunuz? –
İş parçacığı, sunucumdan bazı veriler isteme bitene kadar hangi çocuk parçasını ayarlamak istediğimi bilmiyorum; bu yüzden bunu (engelleme) istekleri – mkz4816
yaptıktan sonra yapmak zorundayım Emin değilim ama iş parçacığı değiştirme ile ilgili bir sorun gibi görünüyor, –