2011-03-27 12 views
11

होम स्क्रीन/इतिहास स्क्रीन से एंड्रॉइड "एप्लिकेशन" लॉन्च होने पर यह पता लगाने का सबसे अच्छा तरीका क्या है?एंड्रॉइड - घर या इतिहास से एप्लिकेशन लॉन्च का पता लगाने

असल में, जो मैं प्राप्त करने की कोशिश कर रहा हूं वह उपयोगकर्ता को प्रत्येक बार ऐप पर वापस आने पर कुछ स्क्रीन पर लॉगिन करने के लिए मजबूर करता है (यानी उनके पास लॉग इन करने के बाद सभी गतिविधियों तक पूर्ण पहुंच होती है, लेकिन अनिवार्य रूप से मैं उन्हें फिर से करना चाहता हूं - जब वे होम स्क्रीन पर लॉन्च करके ऐप पर वापस आते हैं तो प्रमाणीकृत करें)।

मुझे पता है कि पहले से ही इसी तरह के प्रश्न पूछे गए हैं (यानी किसी ऐप के लॉन्च कैसे करें) - लेकिन मैंने जो भी देखा है, वह अभी तक मेरी समस्या को हल करने में सक्षम नहीं है। सभी विचारों का स्वागत है ...

उत्तर

14

होम स्क्रीन/इतिहास स्क्रीन से एंड्रॉइड "एप्लिकेशन" लॉन्च होने का पता लगाने का सबसे अच्छा तरीका क्या है?

आप, AFAIK नहीं कर सकते।

मूल रूप से, मैं क्या हासिल करने की कोशिश कर रहा हूँ कुछ स्क्रीन करने के लिए जब भी अनुप्रयोग के लिए वापस आने के लिए लॉग इन करने के लिए उपयोगकर्ता के लिए मजबूर है (यानी वे है सभी गतिविधियों के लिए पूरा उपयोग एक बार में लॉग इन किया है, लेकिन अनिवार्य रूप से मैं उन्हें चाहते हैं जब वे होम स्क्रीन पर लॉन्च करके ऐप पर वापस आते हैं तो पुन: प्रमाणित करने के लिए)।

कृपया एक समझदार, उपयोगकर्ता के अनुकूल लॉगिन सिस्टम का उपयोग करें। उदाहरण के लिए, यदि आपको लगता है कि उनके लॉगिन प्रमाण-पत्र समय के आधार पर पुराने हैं, तो उन्हें फिर से लॉग इन करने के लिए मजबूर करें। आप onCreate() में क्रेडेंशियल्स की जांच करके ऐसा कर सकते हैं, और यदि वे बाँध हैं, तो अपनी लॉगिन गतिविधि लॉन्च करने के लिए startActivity() पर कॉल करें (या अपना लॉगिन संवाद पॉप अप करें, या जो भी लॉग इन करने का आपका साधन है)।

बेशक, लॉगिन को पूरी तरह से छोड़ना भी एक बेहतर तरीका है। जब तक कि यह "पासवर्ड सुरक्षित" नहीं है, एक बैंकिंग ऐप, या कुछ और जो औसत से अधिक सुरक्षा की आवश्यकता है, आपको उन्हें लॉग इन करने की आवश्यकता नहीं है, और यदि आपके फ़ोन की आवश्यकता अनावश्यक है तो आपके उपयोगकर्ता परेशान होंगे। अधिकांश मोबाइल एप्लिकेशन को प्रमाणीकरण की आवश्यकता नहीं होती है।

इस गतिविधि के आधार पर लॉगिन को मजबूर करना उपयोगकर्ता-विरोधी है। आप उन उपयोगकर्ताओं को बता रहे हैं जो आपके ऐप के अलावा अन्य चीज़ों के लिए अपने फोन का उपयोग करने के लिए तैयार हैं कि वे दूसरे श्रेणी के नागरिक हैं।

+1

आपकी प्रतिक्रिया के लिए धन्यवाद - दुर्भाग्य से यह एक ग्राहक के लिए है, जिसके लिए पर्याप्त उच्च स्तर की सुरक्षा की आवश्यकता है (डेटा काफी संवेदनशील है)। मुझे नहीं लगता था कि मेरी खोजों से कोई रास्ता था, और एक समय आधारित सत्र बिल्कुल ठीक था जहां मैं जा रहा था। – Codz

+2

और फिर भी क्लाइंट एक स्पलैश के साथ दिन को बर्बाद कर देते हैं> _ <, एक वर्कअराउंड खोजने की आवश्यकता होगी। – Warpzit

+0

जब गतिविधि रोकती है, तो गतिविधि बंद करने के लिए ध्वज चालू करें, रोकें पर गतिविधि बंद करें। – pojomx

0

कोशिश एक अच्छी तरह से डिजाइन समाधान है जो "OI सुरक्षित" आवेदन को देखने के लिए (मैं अगर कोड अच्छी तरह से भी बनाया गया है पता नहीं है, लेकिन, आप गौर करेंगे: पी)

2

बस एक बनाने स्टंप गतिविधि जिसमें कोई सामग्री दृश्य नहीं है और एप्लिकेशन पर अन्य गतिविधियों को लॉन्च करता है

उदा। onCreate में निम्नलिखित रख:

Class<?> myclass; 

if(isTimeForActivity1){ 
    myclass = Activity1.class; 
}else if(isTimeForActivity2){ 
    myclass = Activity2.class; 
} 

startActivity(new Intent(this, myclass)); 
finish(); 
12

के बारे में क्या
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)!=0) { 
     Log.d(TAG, "Called from history"); 
    } 

? यह simple Intent flag का उपयोग करता है।

+0

क्या कोई इस उत्तर की वैधता पर टिप्पणी कर सकता है? क्या यह मेरे मुकाबले अन्य, अधिक अनुभवी एंड्रॉइड डेवलपर्स को समझ में आता है? – marienke

+1

आप इसे आसानी से जांच सकते हैं - यहां हमारे सभी उपकरणों पर काम करता है। यदि नहीं, तो कृपया मुझे सूचित करें। – bk138

+1

यह मेरे लिए काम नहीं करता है। –

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