Domanda

Nella mia app Ive ha ottenuto un oggetto non attività che il suo ruolo è essere una classe di manager. molte volte ho bisogno di passare "attività della sorgente" per metodi come parametro a quella classe dirigente, al fine di effettuare alcune operazioni su tale attività.

Ad esempio supponiamo che abbiamo MyActivity che devo fare qualche brindisi. quindi ho questa classe di gestione chiamato MyManager, e ho questo metodo in esso

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}

e dalla classe Myactivity abbiamo chiamare quel metodo in questo modo:

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);

funziona benissimo.

quello che sto chiedendo qui, questo è un modo corretto di passare un attività come parametro per un oggetto non attività? Sto avendo un perdite di memoria sul dispositivo reale (non l'emulatore), mi chiedo se questo potrebbe anche causare alcun motivo per questo?

Grazie Idan.

È stato utile?

Soluzione

Puoi provare a passare contesto di applicazione che è getApplicationContext () sull'attività. Perché hai questo oggetto MyManager? Si può solo alzare brindisi da attività senza averlo in classe separata. Spostare il metodo di raiseToast () al corpo di attività e lo chiamano semplicemente.

EDIT: si prega di leggere http: // android-sviluppatori .blogspot.com / 2009/01 / evitando-memory-leaks.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top