2013-07-26 17 views
9

Sanırım 30 dakika hızlı bir şekilde denediğinizde herkes onun uygulamalarını harika bir şekilde deneyimledi. Ancak bir uygulama cihazın arka planında bir gün ya da öylesine oturduğunda, 'unuzu alırsınız ve Garbage Collector öğelerinizi çaldığı için işler beklendiği gibi çalışmaz. Arka planda uzun süre çalışan bir uygulamayı simüle etmenin herhangi bir yolu var mı?Android: Uzun süre çalışmayı simüle et

+0

Ne 'NullPointerException' alıyorsunuz? – andy256

cevap

0

Belirli bir süre beklemeniz gerekmez. Sadece hafızayı yiyen bir şey yapmalısın. Bu, görev için oluşturduğunuz özel bir uygulama olabilir, ancak gerçekten ihtiyacınız yok.

Deneyimlerime göre, çoğu oyun çalışıyor gibi görünüyor. Grafikler çok olan oyunlar en iyi şekilde çalışır, çünkü dokular için çok fazla bellek kullanırlar. Angry Birds veya Candy Crush da gelişmiş grafikler ya da yoğun işleme olmasa da (ayrıca aynı sebepten bataryayı çiğniyorlar). Normal olarak, sadece bir seviye oynadıktan sonra, Aktivitenize geri dönüp nelerin kaybedildiğini görebilirsiniz.

Optimal olarak verilerinizi devam ettirmek/başlatmak için akıllı yöntemler kullanacaksınız, bu yüzden bu bir sorun değil, bazen siz (veya bir kullanıcı) beklenmedik bir şeyle karşılaşıyorsunuz ve bu size yardımcı olabilir onu takip et.

4

Ayarlar -> Geliştirici seçenekleri -> Arka plan işlem sınırı -> En fazla 1 işlemde.

Eğlendiğinizde onu tekrar ayarlamayı unutmayın. Şerefe.

+0

Hareketsiz olmak gibi bir şey yoktur. Eğer uykuya dalmışsa, hala RAM'de, duraklatılmış durumdaysa, o zaman hala RAM'de ise 30 dakika sonra test etmek hiç mantıklı değil. Her şey aynı olacak. GC, yalnızca artık referans alınmayan nesneleri etkiler. Yani sadece GC hiçbir şeyi etkilemez. Bununla birlikte, ne * * uygulama yaşam döngüsünü etkiler, yukarıdaki yöntemi kullanarak test edilebilen faaliyetlerin veya parçaların rekabetidir. –

+0

Yine, etkinlik ön planda olsa bile, GC referanslı olmayan nesneleri toplayacak, hiç şüphem yoktu. Bununla birlikte, * her iki durumda da başvurulan nesneleri toplamaz. Aktivitede kullandığınız nesneler, * etkinlik * içinde barındırıldığından, referans o zaman kontrol edilir. Bu gerçeği tam tersi olarak biliyorsanız, lütfen referans veriniz. Bununla birlikte, tanımladığınız şeylerle hiç karşılaşmadım. –

+0

Dev SDK'dan: "Etkinliğiniz durdurulduğunda, Etkinlik nesnesi bellekte yerleşik olarak tutulur ve etkinlik devam ettiğinde geri çağrılır. Geriye giden geri arama yöntemlerinin herhangi biri sırasında oluşturulan bileşenleri yeniden başlatmanız gerekmez. Devam ettirilen durum. ”Yani, sıradan bir şey yapmıyorsanız (elbette her şeyin yolunda olduğundan emin olmanız gerekir), GC tarafından hiçbir şey toplanmayacaktır; çünkü, bu nesneler * çöp değil *. Oysa. Bu yüzden kontrol etmeniz gereken tek şey, aktivitenin yok edilmesiydi. Hangi, yine, yukarıdaki yöntemi kullanarak yapabilirsiniz –

İlgili konular