0

當我從運行的服務中獲得某個廣播消息時,我會寫入共享首選項。我想知道如果這會導致內存泄漏? 如果是這樣,我該如何解決它。我需要在20-25分鐘內運行此代碼。做舊線程死亡?Android線程內存泄漏

if(Wifi_Connected) 
{ 

    Thread thread2= new Thread(new Runnable() { 
           @Override 
           public void run() { 
            SharedPreferences.Editor e = sharedData.edit(); 
            e.putInt("Value",1); 
            e.commit(); 
           } 
          }); 

        thread2.start(); 

} 
+1

你爲什麼會認爲這會導致內存泄漏?你認爲可能會泄漏什麼? –

+1

@ JamesKPolk-我知道線程可能導致內存泄漏,這就是爲什麼我要求 – amanda45

+5

我有一個建議給你。完全刪除此線程,只需編寫代碼:'sharedData.edit()。putInt(「Value」,1).apply();'這會更有效得多。 – Budius

回答

0

不,它可能會導致一些UI打嗝。提交操作非常快,所以它不會讓外部類太長。但是你最好使用在後臺線程中執行操作的apply()方法。 一般而言,當您持有對像活動這樣的「大」對象的引用時出現泄漏,並且因爲它不能被銷燬。