4 Mart 2015 Çarşamba

Activity

AndroidManifest.xml dosyasında <application> tagı içerisinde <activity> tagı ile belirtilen java classlarıdır.
Her Activity mutlaka Activity classı extend edilerek yazılır.
Her activitynin üzerinde UI olan, belirli bir işlem yapılan tek bir ekranı vardır.
Bunlardan birisinin mutlaka ilk yüklenecek aktivite olduğu <intent-filter> tagı ile manifest dosyasina eklenmelidir (main function gibi).
Örneğin MainActivity classını belirtirken:
<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>


a. Application nasıl başlar?
Başlangıç activitysi olarak belirlenen activity, sistem tarafından onCreate metodu ile çağırılarak başlatılır.
onCreate metodu çağırılınca activity Created stateine geçer.


b. Activity life cycle nedir?
Application ın içinde bulunduğu durumlar döngüsüdür.
Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed

c. Application life cycle daki geçişleri sağlayan callback metodları nelerdir?
onCreate : aktivite ilk yaratıldığında çağrılır.
onStart : aktivite kullanıcıya görünür olduğu her seferde çağrılır
onResume : Kullanıcı appi interaktif kullanmaya başladığında çağrılır
onPause : paused durumuna geçirir
onStop : kullanıcıya görünmez olduğunda çağrılır
onDestroy: sistem tarafından kill edilmeden önce çağrılır
onRestart: stopped olduktan sonra yeniden başladığında çağrılır

Örnek:

public class MainActivity extends Activity {
   String msg = "Android : ";
 
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

   /** Called when the activity is about to become visible. */
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

   /** Called when the activity has become visible. */
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   /** Called when another activity is taking focus. */
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   /** Called when the activity is no longer visible. */
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

   /** Called just before the activity is destroyed. */
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
}

d. Birden fazla aktivite olabilir mi?
Evet, sınırsız aktivite olabilir.
Bütün aktiviteler AndroidManifest.xml dosyasına eklenmelidir.
Ayrıca ilk yüklenecek aktivite de <intent-filter> ile belirtilmelidir.
Bunlar belirtilmezse kullanıcının ekranında app ikonu görünmez.

<activity
           android:name=".MainActivity"
           android:label="@string/title_activity_main" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>

e. Activity nasıl başlatılır?
"startActivity()" metoduyla activity başlatırız.

"startActivityForResult()" metoduyla activity nin bir de sonuç dönmesini sağlayabiliriz.

Hiç yorum yok:

Yorum Gönder