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()方法。 一般而言,当您持有对像活动这样的“大”对象的引用时出现泄漏,并且因为它不能被销毁。