तक शुरू नहीं हो रहा है मुझे AlphaAnimation
के साथ एक अजीब समस्या है। यह AsyncTask
हैंडलर कहलाता है जब बार-बार चलना माना जाता है।एनीमेशन यूआई अपडेट या टच इवेंट
हालांकि, पहली बार हैंडलर को Activity
में बुलाया जाता है, तब तक एनीमेशन तब तक शुरू नहीं होगा जब तक कि मैं स्क्रीन को स्पर्श नहीं करता या यूआई अपडेट नहीं होता (उदाहरण के लिए फोन के मेनू बटन दबाकर)।
अजीब बात यह है कि एक बार एनीमेशन कम से कम एक बार चलाए जाने पर, बिना किसी समस्या के शुरू होने पर यह समस्या के बिना शुरू हो जाएगा।
यहाँ कोड लग रहा है की तरह है:
// AsyncTask handler
public void onNetworkEvent()
{
this.runOnUiThread(new Runnable() {
@Override
public void run()
{
flashScreen(Animation.INFINITE);
}
});
}
// Called method
private void flashScreen(int repeatCount)
{
final View flashView = this.findViewById(R.id.mainMenuFlashView);
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
alphaAnimation.setRepeatCount(repeatCount);
alphaAnimation.setRepeatMode(Animation.RESTART);
alphaAnimation.setDuration(300);
alphaAnimation.setInterpolator(new DecelerateInterpolator());
alphaAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation)
{
flashView.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationEnd(Animation animation)
{
flashView.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) { }
});
flashView.startAnimation(alphaAnimation);
}
मैं देखा है कि runOnUIThread
आवश्यक नहीं है (एक ही परिणाम होते हैं अगर मैं इसे का उपयोग नहीं करते), लेकिन मैं इसे रखने पसंद करते हैं के रूप में मैं नहीं कर रहा हूँ यूआई थ्रेड पर।
इस पर कोई विचार क्या हो सकता है?
आपके कॉल अनुक्रम को समझने के लिए बहुत कम कोड। क्या आप Asynctask के निष्पादन के आसपास के हिस्से को पोस्ट कर सकते हैं? साथ ही, क्या आपने क्या चल रहा है यह देखने के लिए प्रासंगिक तरीकों से प्रवेश लॉग करने का प्रयास किया है? – ilomambo
एनीमेशन को पहली बार कुछ सेकंड तक देरी करने का प्रयास करें। यह दृश्य हो सकता है जब दृश्य तैयार होने से पहले एनीमेशन चलाने की कोशिश कर रहे हों। –