İkinci çözüm denedim, ancak sorun, tek bir etkinliğin hangi başlatıcı simgesinin kullanıldığını algılayamamasıdır (lütfen yanılıyorsa bana bildirin).
Çözümüm, iki "kukla" etkinlik eklemek ve daha sonra ana etkinliği doğru "sayfa" sayısı olan başlatmaktı. Bu yaklaşımdaki zorluk, görev yığınının düzgün bir şekilde ele alınmasıdır. Başlatıcı seçildiğinde, kukla etkinlik başlatılmalı ve ana etkinliğe bir niyet göndermelidir. Android bunu yapmanı engellemek için gerçekten çok uğraşır ve sadece son etkinliği tekrar öne çıkar. (LaunchActivity2 için benzer)
kukla faaliyetleri: Ana etkinlikte
public class LaunchActivity1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent newIntent = new Intent(this, MainActivity.class);
newIntent.putExtra(MainActivity.EXTRA_PAGE, 1);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
finish();
}
}
:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPager viewPager = (ViewPager)findViewById(R.id.MainViewPager);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
int page = getIntent().getIntExtra(EXTRA_PAGE, -1);
if(page >= 0 && page <= NUM_ITEMS)
viewPager.setCurrentItem(page);
}
public void onNewIntent(Intent intent) {
if(intent.hasExtra(EXTRA_PAGE)) {
int page = intent.getIntExtra(EXTRA_PAGE, -1);
ViewPager viewPager = (ViewPager)findViewById(R.id.MainViewPager);
if(page >= 0 && page <= NUM_ITEMS)
viewPager.setCurrentItem(page);
}
}
AndroidManifest.xml
Bu benim ile gelebilir en iyisi:
( ) Farklı görev ilişkilerine sahip olan sorun, hem başlatıcıların hem de ana görevlerin "Son Uygulamalar" listesinde yer almasıdır.
Bu yaklaşımı başkalarına tavsiye etmem - yalnızca tek bir başlatıcı simgesi kullanıyorum.
Çözüm 2 için hangi başlatıcı simgesinin kullanıldığını nasıl tespit edersiniz? Bu bilgi lansman amacında mevcut mu? – Ralf
Parçaları işleyen etkinliği başlatan hedefe ekstra ekleyebilirsiniz. –
Etkinliği başlatmak için iki ana ekran başlatıcısı istiyorum, bu nedenle bu amaçlara fazladan ekleyemiyorum. – Ralf