Bir Android uygulaması geliştiriyorum ve beklediğim gibi kodumun çöktüğü durumlar (hatalar, boş göstergeler vb.) Var.Uygulama kilitlendiğinde ne olur?
Uygulama çöktüğünde, bunu yapmak için herhangi bir kod yazmamış olmama rağmen (bu varsayılan davranış olduğunu mu sanıyordum ?!) ancak sorun şu ki, uygulama yanlış bir durumda açılıyor.
Burada uygulama başladığında genelde böyle olur:
- Başlangıçta uygulaması bir "sıçrama ekran" ile açılır. Bu ekran, kullanıcının ortak tercihlerde kalıcı belirteçler kullanarak kimliğini doğrulamaya ve bazı varsayılan değerleri sunucudan yüklemeye ve bunları bazı hizmetlerde ısrar etmeye çalışır.
- Oturum açma başarısına bağlı olarak, ana ekrana veya giriş ekranına gider.
uygulamamız tüm gayet iyi çalışıyor ve beklendiği gibi başlatma dizisi çalıştırılır ama bir bir kaza sonucu, ekranı fragmanında nüfuslu oldum olacak değerler (örneğin, yeniden başlatıldığında, normal başladığında Kullanıcıda oturum açarken veya varsayılan değerleri sunucudan yüklerken) hepsi geçersizdir, yani hiçbir zaman çalıştırılmazlar.
Bu, uygulamanın kendini yeniden başlatmasıyla ilgili olayların sırasının tamamen yanlış olduğuna inanmamı sağlar. Örneğin, uygulamada Başlatıcı olarak belirtilen doğru etkinliği kullanarak uygulamayı yeniden başlatmak yerine, yanlış bir şekilde yeniden başlatılıyor gibi görünmektedir. yanlış etkinlik.
İşte soru şu: Bir çarpışma gerçekleştiğinde uygulamamın kendini yeniden başlatması gerektiğini belirleyen ve bunun nasıl başlatılması gerektiğini belirleyen nedir? Uygulama bir kilitlenmeden başladığında yakalayabileceğim herhangi bir olay var mı, böylece başlatma sırasını geçersiz kılabilir miyim? Uygulamayı her zaman başlatıcı etkinliğinden başlamak için zorlamanın bir yolu var mı? peşin
Çok teşekkürler,
Sadece bazı bilgileri eklemek için, tekrar arayarak uygulamanın açılmasını engelleyebilirsiniz: android.os.Process.killProcess (android.os.Process.myPid()); Küresel bir Thread.UncaughtExceptionHanlder içinde System.exit (0) . Bunun ne kadar doğru olduğunu anlamıyorum (muhtemelen fazla değil). Ama ben gerçekten bir uygulama bu senaryolarda nasıl davranması gerektiğini bilmek istiyorum – JML
Çok teşekkür ederim JML. Bu gerçekten yararlıdır; bununla birlikte, uygulamanın kendisini yeniden başlattığını özellikle bilmediğimi belirtmeliyim ve Android işletim sisteminin işletim sistemi tarafından otomatik olarak yeniden başlatılması gibi görünen "standart yol" lara mümkün olduğunca yakın kalmak istiyorum.Bununla birlikte, Launcher bayrağına saygı göstererek veya en azından başlatma sırasını geçersiz kılmak için bana yardımcı olacak şekilde yeniden başlatıldığında doğru şekilde davranmasını isterim. Yine, öneriniz için çok teşekkür ederim. – kha