2010-12-29 12 views
5

Sadece çok basit GUI olmayan bir işlem yapacak çok basit bir uygulama yazmaya çalışıyorum, daha sonra kısa bir mesaj (toast kullanarak, Zaten ekranda olanın üstüne, örneğin ana ekrana) ve bitir. Bu kadar.Bir aktivitenin GUI'sinden tamamen kurtulmak için (siyah ekrandan kaçının)

Neredeyse çalışıyor, ancak uygulama başladıktan sonra yine de kısa bir siyah ekran alıyorum, sonra ana ekrana dönüyorum ve bundan sonra da işlerim var. Ben setContentView kullanarak benim aktiviteyi kullanmamanın (böylelikle bir Görünümden mahrum bırakması) siyah ekrandan kaçınmak için yeterli olacağını düşündüm, ama yine de ortaya çıkıyor. Lütfen (ilgili bir soruda önerildiği gibi), bir sorunun benim sorunumun cevabı olmadığını unutmayın. Sadece çalışır ve hemen biter bir GUI-less (bir tost hariç) uygulaması istiyorum. Bir hizmet benim sorununa çözüm değil

+1

Bir Hizmetin neden sorununun cevabı olmadığını açıklamanız muhtemelen yararlı olacaktır. Bu çok Servis odaklı geliyor. – Matt

+1

Öncelikle, çünkü sürecimin arka planda çalışmaya devam etmesini istemediğimden, hizmetlerin amaçlandığı gibi. Hızlı ve temiz bir şekilde girmek ve çıkmak istiyorum. İkincisi, Android belgeleri doğrudan etkinliklerin bir kullanıcı arayüzüne sahip olmak zorunda olmadığını belirtiyor, ancak bunu yapmanın yolunu bulamadım. (Cevap 1 zaten benim sorunumu çözdü) Yine de teşekkürler. – shutou

cevap

17

olduğunu onResume()'dan dönmeden önce finish() numaralı telefonu arayacaktır. Bundan sonra daha fazla iş yapacaksanız (örneğin, herhangi bir ağ veya hızlı bir şekilde eşzamanlı olarak yapılamayacak bir şey yapacaksanız), muhtemelen işe başlamak için bir hizmete başlamak isteyeceksiniz. Platform, aktiviteniz bittikten sonra işleminizin devam etmesi gerekir.

+0

Harika! Bu tam olarak ihtiyacım olan şey. Kesinlikle, çünkü sürecimin arka planda çalışmaya devam etmesini istemiyorum. Teşekkürler dostum! – shutou

+0

@shutou: Bu muhtemelen (hiç bir fikrim olmamasına rağmen) bir hizmete başlamaktan çok daha fazla. Hizmetin arka planda çalışmaya devam etmesine izin vermek zorunda değilsiniz. Cevabıma cevabımı görün. – Falmarri

+0

Başlatıcı etkinliği olarak bir giriş etkinliği kullanıyorum, çünkü asıl etkinliğin bazı mantıklarla (ör. Giriş, kayıt veya içerik) belirlenmesi gerekiyor. Bundan önce giriş faaliyeti de göstericiydi, ki bu sinir bozucu oldu ama şimdi ortadan kayboldu! Teşekkürler – Meanman

-1

:) Teşekkür

Evet bu Manifest'inizde kullanımda <activity> bu sizi varsayar

android:theme="@android:style/Theme.NoDisplay" 

Not

+0

Tamam, istediğimi yapmanın alternatif bir yolu olabilir, ancak yanıt olarak görüldüğü gibi, bir uygulamanın UI'sinin görüntülenmesini kapatmak mümkündür. Ve benim basit uygulama bittikten sonra arkaplan süreçlerini çalıştırmayı istemediğimden, bir hizmetin ihtiyacım olandan daha fazlası olabileceğini düşündüm. Yine de, bir hizmetin, herhangi bir ek süreci içermeyen yalnızca minimal bir etkinlikten yapılmasına izin veren bir hizmetin, Yanıt 1'de verilen çözümden daha verimli olup olmayacağından emin olmayacağını bile bilmiyorum. veya iş parçacığı. Artıları ve eksileri daha ayrıntılı olarak değerlendirmek için hizmetler hakkında daha fazla bilgi edinebilirim. Teşekkürler – shutou

+0

Hizmetler ekstra işlem veya konu üretmiyor. Bir hizmet, esas olarak GUI'siz bir etkinliktir. Kaynak kodunu iyice incelemedim, ama neredeyse tam olarak bunu yapacağım. Servisin çalışmasından ayrılmanıza gerek yok. Aslında bunu yapma. Sadece servisi başlatın, işi yapın ve daha sonra 'durSelf()' olarak adlandırın – Falmarri

0

IntentService için bir iş gibi görünüyor. Bir niyet gönderirsiniz ve eğer çalışmazsa, başlar, tüm alınan amaçlara davranır, sonra durur. Kısa ve basit.

İlgili konular