2012-06-19 18 views
5

Ho bisogno di ottenere un ID univoco di un'istanza di attività Android. Vorrei prendere la stringa che l'activitymanager scrive nel registro (ad esempio: ActivityManager: Activity pausa timeout per HistoryRecord {450495a0 ...}), ma non so come ottenerlo.ID univoco di un'attività Android

Qualcuno sa come posso ottenere questa stringa? O c'è un altro ID univoco per ogni istanza di attività?

+0

Definire il dominio per l'unicità. – m0skit0

+0

Scusa, ma non so cosa intendi con questo. – anel

+1

Unico dove? Unico nel dispositivo? Unico nella Terra? Unico nell'universo? – m0skit0

risposta

7

Forse è possibile utilizzare l'hashCode di Activity.

+0

Sarebbe bello ottenere la stringa del activitymanager, ma ovviamente l'hashcode farebbe anche il lavoro. Se non riesco a ottenere questa stringa specifica, prenderei l'hashcode, ma l'altra puntura renderà il debug più facile per me. – anel

0

hashCode() metodo Activity, restituisce un ID univoco di un'istanza di attività di Android, ma getTaskId() non possono tornare valore unico

1

ogni dove nel progetto:

MainActivity.class.hashCode(); 

in attività

this.hashCode(); 

È anche possibile ottenere hashCode dal contesto

1

So che questa domanda è un po 'obsoleta, ma avevo bisogno di questo per alcuni motivi.

NON è consigliabile utilizzare il metodo hashCode dell'attività, se si desidera conservarlo più a lungo. Come tutti sappiamo, le attività possono essere ripulite dal sistema operativo. Ciò significa che, quando vengono ricreati, probabilmente hanno un hashCode diverso rispetto all'istanza precedente. Una soluzione per questo (se si desidera rimanere con un numero intero come id) potrebbe essere il getIntent(). HashCode()