2016-10-20 30 views
1

讓我們把下面的服務爲例:多少電池會耗盡一個Android服務,廣播接收器

public class MyService extends Service { 

    final BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() { 
     @Override public void onReceive(Context context, Intent intent) { 
      //Do nothing 
     } 
    }; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     IntentFilter intentFilter = new IntentFilter(); 
     intentFilter.addAction(Intent.ACTION_SCREEN_OFF); 
     intentFilter.addAction(Intent.ACTION_SCREEN_ON); 
     registerReceiver(mScreenStateReceiver, intentFilter); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     unregisterReceiver(mScreenStateReceiver); 
    } 

} 

注意,這個廣播接收器需要被註冊在運行時(可以說,服務或活動)。這就是我使用服務的原因

假設此服務將在設備開機的整個過程中運行,有一個工作的BroadcastReceiver並且什麼都不做,會消耗電池壽命嗎?如果會,多少?由於運行了服務或廣播接收器,是否可以使其運行使Android框架消耗更多電量?

我知道,我是一個電池壽命瘋子

回答

0

一個BroadcastReciever本身不消耗過多的電池。你在裏面做的任務決定了電池耗盡多少。 請參閱thisthis