2013-10-06 9 views
23

मैं सिर्फ पाया कि जब डिवाइस लॉक स्क्रीन सक्षम है, निम्नलिखित होता है। इस गतिविधि के लिए, एंड्रॉइड: स्क्रीनऑरिएंटेशन = "लैंडस्केप" मैनिफेस्ट में सेट है। फिर मैं अपने फोन के साथ एक पोर्ट्रेट मोड में अनुवर्ती प्रदर्शन करता हूं।एंड्रॉयड गतिविधि जीवन चक्र और ताला/अनलॉक डिवाइस

  1. उपयोगकर्ता एक गतिविधि को खोलता है।
  2. onCreated()
  3. onStart() कहा जाता है
  4. onResume() कहा जाता है
  5. उपयोगकर्ता डिवाइस 4.5 onPause कहा जाता है()
  6. OnDestroy (तालों) कहा जाता है कहा जाता है
  7. onCreate()
  8. onStart() कहा जाता है
  9. onResume() कहा जाता है 8.5 onPause कहा जाता है कहा जाता है()
  10. उपयोगकर्ता डिवाइस तब अनलॉक
  11. onResume()
  12. OnDestroy कहा जाता है()
  13. onCreate कहा जाता है()
  14. onStart कहा जाता है()
  15. onResume कहा जाता है() कहा जाता है।

ठीक है, मुझे समझ नहीं आता क्यों 6,7,8 क्रियान्वित कर रहे हैं, उसके बाद स्क्रीन बंद हो जाता है .. इसके अलावा मुझे समझ नहीं आता क्यों 11, 12, 13, 14 क्रियान्वित कर रहे हैं है। जब मैं डिवाइस को लॉक और अनलॉक करता हूं तो कुछ अजीब चीजें होती हैं? मैं अचानक गतिविधि जीवन चक्र से उलझन में हूं .. क्या कोई इसे स्पष्ट कर सकता है?

अताशे कोड और लॉग संदेश

package com.example.wf; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Log.d("log", "oncreate"); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d("log", "onresume"); 
    }; 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     Log.d("log", "onstart"); 
    }; 

    @Override 
    protected void onPause() { 
     super.onStart(); 
     Log.d("log", "onpause"); 
    }; 

    @Override 
    protected void onDestroy() { 
     Log.d("log", "ondestroy");  
     super.onDestroy(); 
    }; 
} 

लॉग msgs

10-05 23:11:07.994: D/log(23810): oncreate 
10-05 23:11:07.994: D/log(23810): onstart 
10-05 23:11:07.994: D/log(23810): onresume 
// LOCK DEVICE 
10-05 23:11:19.957: D/log(23810): ondestroy 
10-05 23:11:20.007: D/log(23810): oncreate 
10-05 23:11:20.007: D/log(23810): onstart 
10-05 23:11:20.007: D/log(23810): onresume 
// UNLOCK DEVICE 
10-05 23:11:57.407: D/log(23810): onresume 
10-05 23:11:57.537: D/log(23810): ondestroy 
10-05 23:11:57.587: D/log(23810): oncreate 
10-05 23:11:57.587: D/log(23810): onstart 
10-05 23:11:57.587: D/log(23810): onresume 
+0

के बाद से 2 दिनों के विभिन्न विकल्पों – suku

उत्तर

35

फोन (या अभिविन्यास बंद कर दिया चित्र के साथ गोलियाँ) में, लॉक स्क्रीन केवल चित्र है। इसलिए जब डिवाइस लॉक हो जाता है, तो डिवाइस स्वचालित रूप से पोर्ट्रेट मोड पर स्विच हो जाता है (6, 7, 8, और 9 का कारण बनता है)। जब डिवाइस अनलॉक हो जाता है, तो onResume() को आपके Activity के रूप में जाना जाता है, लेकिन आप फिर से चित्र के बीच संक्रमण कर रहे हैं और अब परिदृश्य में बंद हो गए हैं, इसलिए गतिविधि नष्ट हो जाती है और परिदृश्य में पुनर्निर्मित हो जाती है।

+0

अच्छा स्पष्टीकरण की कोशिश कर इस के साथ संघर्ष। – Vicky

+0

पूरी तरह से समझाया। गतिविधि लॉक/अनलॉक पर ही मनोरंजन की जाती है अगर यह लैंडस्केप मोड में है। – AnujDeo

2

गतिविधि फिर से निर्माण परिदृश्य के आने से अधिक लेने के लिए Android का उपयोग करके android मैनिफ़ेस्ट फ़ाइल द्वारा गतिविधि के स्तर पर विन्यास बदलाव संभाल कर सकते हैं: configChanges = "अभिविन्यास" विशेषता।

+0

यह मेरे लिए काम नहीं किया – portfoliobuilder

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