2010-07-12 14 views
28

AccountAuthenticator.java:मैं इस उद्देश्य से संदर्भ कैसे प्राप्त करूं?

Intent intent = new Intent(context, AccountActivity.class); 

AccountActivity.java:

getIntent().getContext(); 

लेकिन getContext() मौजूद नहीं है:
OnCreate (बंडल aBundle) में मैं कहना चाहता हूँ।

मैं इरादे से संदर्भ कैसे प्राप्त करूं?
चूंकि यह इरादा कन्स्ट्रक्टर में पारित हो गया है, इसलिए मुझे यह खाता सक्रियता में आगमन पर उपलब्ध होने की उम्मीद थी।

+0

आपको इरादे से संदर्भ की आवश्यकता क्यों है? – Maragues

+0

मुझे सेवा (यानी संदर्भ) की आवश्यकता है जिसने इरादा बनाया है, ताकि इसे एसिंक टास्क को कन्स्ट्रक्टर में ले जा सके। अगर मैं ऐसा नहीं करता हूं तो मुझे मिलता है: "java.lang.SecurityException: कॉलर यूआईडी 10027 प्रमाणीकरणकर्ता के यूआईडी से अलग है", क्योंकि AsyncTask खाता प्रबंधक am = Accountmanager.get (संदर्भ) कर रहा है। – user77115

+0

मेरे लिए, मैं टीडीडी का उपयोग करने की कोशिश कर रहा था और परीक्षण के तहत कोड से सही संदर्भ निर्धारित किया जा रहा था। – PseudoNoise

उत्तर

32

मैं से संदर्भ कैसे प्राप्त करूं?

आप नहीं करते हैं।

चूंकि यह आशय निर्माता में पारित कर दिया है, मैं इसे उम्मीद कर रहा था AccountActivity में आगमन पर उपलब्ध होने की।

Context केवल Intent रूटिंग जानकारी बनाने में मदद के लिए उपयोग किया जाता है। चूंकि Intent किसी भी Context के बाहर (और अक्सर करता है) रहता है, IntentContext पर नहीं हो सकता है।

मैं सेवा (अर्थात प्रसंग) की जरूरत है कि आशय बनाया है, तो के रूप में सक्षम एक AsyncTask निर्माता में लेने बनाने के लिए किया जाना है।

आप यह नहीं कर सकते, क्षमा करें।

तो मुझे लगता है कि मैं ऐसा नहीं करते हैं: :, "java.lang.SecurityException फोन करने वाले uid 10027 प्रमाणक के uid तुलना में अलग है" के बाद से AsyncTask खाता प्रबंधक बजे = Accountmanager.get कर रही है (संदर्भ)।

इसका AsyncTask से कोई लेना देना नहीं है। इसे प्रक्रियाओं के साथ करना है, धागे नहीं।

+0

बिल्कुल सही स्पष्टीकरण। Kudos :) CommonsWare –

संबंधित मुद्दे