2012-06-19 20 views
5

Android etkinlik örneğinin benzersiz bir kimliğini almam gerekiyor. Activitymanager'ın günlüğünde yazdığı dizeyi almak istiyorum (örneğin: ActivityManager: HistoryRecord için Aktivite duraklatma zaman aşımı {450495a0 ...}), ancak nasıl alacağımı bilmiyorum.Bir android etkinliğinin benzersiz kimliği

Bu dizeyi nasıl alabileceğimi birileri biliyor mu? Ya da her etkinlik örneği için başka bir kimlik var mı?

+0

Benzersiz için etki alanı tanımlayın. – m0skit0

+0

Üzgünüz, ama bununla ne demek istediğini bilmiyorum. – anel

+1

Benzersiz nerede? Cihazda benzersiz mi? Dünyada eşsiz mi? Evrende eşsiz mi? – m0skit0

cevap

7

Belki de Activity'ın hashCode özelliğini kullanabilirsiniz.

+0

Activitymanager'ın dizesini almak güzel olurdu, ancak hashcode elbette işi de yapardı. Eğer bu özel dizeyi alamıyorsam, hashcode alırdım, ama diğer sokma hata ayıklamayı benim için kolaylaştırır. – anel

0

hashCode() yöntem Activity yılında, o bir android etkinlik örneğinin benzersiz bir kimliği döndürür, ancak getTaskId() nerede projenizde

1

her benzersiz bir değer döndüremez: Aktivite içinde

MainActivity.class.hashCode(); 

this.hashCode(); 

hashCode içeriğinden

numaralı telefonu alabilirsiniz.
1

Bu sorunun biraz modası geçmiş olduğunu biliyorum, ancak bazı nedenlerden dolayı buna ihtiyacım vardı.

Daha uzun süre tutmak istiyorsanız, etkinliğin hashCode yöntemini kullanmak iyi bir fikir değildir. Hepimizin bildiği gibi, Faaliyetler İşletim Sistemi tarafından temizlenebilir. Bu, yeniden yaratıldıkları zaman, muhtemelen daha önceki örneklerden farklı bir karma koduna sahip oldukları anlamına gelir. Bunun için bir çözüm (id olarak bir tamsayı ile kalmak istiyorsanız) getIntent() olabilir. HashCode()

İlgili konular