2014-10-15 2 views
6

मैं कोई Android एप्लिकेशन बना रहा हूँ और यह GoogleMaps उपयोग करता है। तो जब मैं बटन पर क्लिक करता हूं, तो मैं एक रजिस्ट्रोसिज़िओनएक्टिविटी लोड करता हूं जो Google मानचित्र दिखाता है। तो मैंने ध्यान दिया है कि इस गतिविधि की लोडिंग गति धीमी है। क्या इस गतिविधि को लोड करने की गति बढ़ाने के लिए कोई तरीका है?गतिविधि को लोड करने के लिए गति को कैसे बढ़ाया जाए?

  protected void onCreate(Bundle savedInstanceState) { 
      try{ 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_recordposition); 
       locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
       Criteria criteria = new Criteria(); 
       criteria.setAccuracy(Criteria.ACCURACY_FINE); 
       provider = locationManager.getBestProvider(criteria, false); 
       locationManager.requestLocationUpdates(provider, 1000, 0, this); 
       settaMappa(); 
       if(myPosition==null){ 
        pDialog = ProgressDialog.show(this, "Attendere ...", "Localizzazione in corso ...", true); 
        pDialog.setCancelable(false); 
       } 
      }catch(Exception e){ 
       Log.e("Errore onCreate:",e.getMessage()); 
       Utility.generateNoteOnSD(fileName,e.getMessage()); 
      } 
     } 

     public void settaMappa(){ 
      mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map2)).getMap(); 
      mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
      mMap.setMyLocationEnabled(true); 
     } 

यह activity_recordposition.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    android:orientation="vertical" 
    tools:context=".registraPosizioneActivity" 
    android:gravity="center"> 


    <fragment 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:id="@+id/map2" 
     android:layout_height="0dp" 
     android:layout_weight="10" 
     android:layout_width="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <Button 
     android:id="@+id/buttonR" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.20" 
     android:layout_margin="20dp" 
     android:background="#0080c2" 
     android:textColor="#FFF" 
     android:textSize="20sp" 
     android:onClick="registraPunto" 
     android:text="@string/registraPunto" /> 

    <Button 
     android:id="@+id/buttonSava" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.20" 
     android:layout_margin="20dp" 
     android:background="#0080c2" 
     android:textColor="#FFF" 
     android:textSize="20sp" 
     android:onClick="savaAreaTracciata" 
     android:text="@string/terminaRegistrazione" /> 
    </LinearLayout> 
+0

शुरू आप वास्तव में जांच की है मुख्य जीवन चक्र विधियों के लिए गतिविधि कितनी देर तक लेती है? –

+0

मैं onCreate विधि पर सभी कोड टिप्पणी है, लेकिन गति मेरी गतिविधि लोड करने के लिए कम है। – bircastri

उत्तर

0
मेरे लिए

है जैसे आप onCreate विधि में प्रसंस्करण का एक बहुत कर रहे हैं ऐसा लगता है:

यह मेरा कोड है। इस प्रक्रिया में से कुछ को एसिंक थ्रेड में ले जाने का प्रयास करें। मेरा मानना ​​है कि बहुत से भार के समय में वृद्धि होगी।

तो,

  • लोड अप गतिविधि onCreate के भीतर एक Async कार्य
  • Async धागा प्रसंस्करण गतिविधि के बाद आवश्यक लोड होते ही करता है :)
+0

कुछ भी नहीं है कि वास्तव में वह एक बहुत कर रही है, बस एक स्थान प्रबंधक की स्थापना और नक्शा हो रही लग रहा है। thats कुछ नहीं – tyczj

+0

हिया, यह काफी नहीं हो सकता है, लेकिन वह ठीक करने के लिए स्पष्ट रूप से डिवाइस वह से यह परीक्षण किया है कुछ समय लग रहा है करने के लिए जीपीएस निर्देशांक पाने के लिए सटीकता सेट है और इस प्रकार गतिविधि बहुत तेजी से लोड करने के लिए प्रतीत नहीं होता। यदि वह गतिविधि चलाता है और जीपीएस प्रसंस्करण किसी अन्य थ्रेड (Async) में करता है। गतिविधि लगभग तत्काल दिखाई देगी और पृष्ठभूमि में Async धागा चलाया जाएगा :)। यह किसी भी तेजी से नहीं मिला है, लेकिन, गतिविधि तेजी से लोड हो रही है, जो वह चाहता था। – csdacac

+0

जीपीएस लॉक प्राप्त करने से गतिविधि को लोड करने की गति से कोई लेना देना नहीं है। एक गतिविधि कभी एक जीपीएस ताला प्राप्त किए बिना लोड कर सकते हैं – tyczj

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