मैं पहले कार्य को पूरा करने के बाद एक asynctask निष्पादित करना चाहता हूं। लेकिन स्थिति को प्रिंट करते समय पहले कार्य के लिए यह हमेशा रनिंग दिखाता है। अगर दोनों कार्यों को समानांतर निष्पादित करें तो केवल छोटे कार्य को निष्पादित किया जाएगा। मैं गतिविधि की प्रक्रिया में दोनों चल रहा हूं। कोई विचार?Asynctask स्थिति हमेशा चल रहा है
अभी यहाँ मेरी कोड नमूना
public class test extends Activity
{
ExecuteTask1 task1;
ExecuteTask2 task2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
task1 = new ExecuteTask1();
task1.execute(token);
System.out.println(task1.getStatus());
if(task1.getStatus() ==AsyncTask.Status.FINISHED)
{
task2 = new ExecuteTask2();
task2.execute(token);
}
}
}
में कार्य 2 के साथ कार्य 1 की निर्भरता को हटा दें धन्यवाद धन्यवाद यह ठीक काम कर रहा है। – Reji
थोड़ा सा विषय हो सकता है लेकिन क्या यह हो सकता है कि getStatus() रिटर्न हो रहा है यदि एक AsyncTask पहले से रद्द कर दिया गया है ओओ? कम से कम यही मैं अभी प्राप्त कर रहा हूं, मेरे AsyncTask को रद्द करने के बावजूद (जब तक कि एक ही कार्य किसी भी तरह से स्वत: पुनर्जीवित नहीं किया जा रहा हो)। – AgentKnopf
@Zainodis - 'AsyncTask.getStatus()' वास्तव में 'रद्द करने' के बाद 'रनिंग' वापस कर सकता है और 'सत्य' लौटाता है। उदाहरण के लिए, 'रद्द करें() 'कॉल को अंतर्निहित थ्रेड पर' इंटरप्ट()' पर कॉल किया जा सकता है या 'AsyncTask' के लिए' isCancelled() 'ध्वज सेट कर सकता है, लेकिन' AsyncTask 'की स्थिति जीती' टी अंतर्निहित धागे को तब तक बदलता है जब तक कि फ्लैग वैल्यू में बाधा या परिवर्तन नहीं होता है और वास्तव में बाहर निकलता है। यही कारण है कि दस्तावेज़ अनुशंसा करते हैं कि 'doInBackground() 'को समय-समय पर' isCancelled() 'के मान की जांच करनी चाहिए और" जितनी जल्दी हो सके कार्य को समाप्त करें। " –