SORU
5 EYLÜL 2012, ÇARŞAMBA


Nasıl bir ana faaliyet için doğru dönebilir miyim?

2 etkinlikler (A ve B) android uygulamam var ve parent_activity kullanımı etkin faaliyet B faaliyet için bir niyet kullanıyorum:

 <activity
        android:name=".B"
        android:label="B" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.app_name.A" />
  </activity>

Ben de bir düğme sağlayan bir tema kullanın.

Aktivite B aradıktan sonra YUKARI düğmesine tekrar etkinlik A. almak için kullanabilirim sorun uygulama arama gibi görünüyor() onCreate-fonksiyon faaliyet tekrar ve bu ihtiyacım olan bir davranış değildir. Etkinlik B. aradım önce baktım gibi Bir aktivite de aynı şekilde bakmanı istiyorum

Bir şekilde bunu başarmak için var mı?

Şimdiden teşekkürler

DÜZENLEME:

Etkinlik A. I faaliyet B eclipse tarafından otomatik olduğunu düşünüyorum başlamak için herhangi bir kod yazmadım.

B sınıfı gibi görünüyor:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_b);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_b, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

CEVAP
10 NİSAN 2013, ÇARŞAMBA


Standart Android launchMode apaçık Bir aktivite olarak ilan etti. Şu: demek ki the documentation göre

Sistem her zaman hedef etkinliğinde yeni bir örneğini oluşturur bu görev ve güzergahlar niyet.

Bu nedenle, sistem görevi yığın doğru ele değilse bile Bir aktivite (onCreate yani arama) yeniden oluşturmak zorunda kalır.

Bildirim değiştirmeniz bu sorunu çözmek için aşağıdakileri ekleyerek etkinlik bildirimi için öznitelik:

android:launchMode="singleTop"

Not:finish() Daha önce çözüm olarak önerilen () arama çalışmalarısadecezamantamamen eminetkinlik B örneği vardır sonlandırma yaşayan bir örnek etkinlik A. daha karmaşık iş akışları (örneğin, fırlatma etkinliği B bildirimi) Bu olmayabilir dava ve sana sahip olduğu için doğru başlatmak etkinlik B.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • Vsauce

    Vsauce

    30 Temmuz 2007