2013-05-18 56 views
0

我想尝试使用系统服务,如wakelock,但由于某种原因,当我运行它的错误说“系统服务不可用的onCreate()之前的活动()”我试着改变一点点wakelock通过将newWakeLock移动到oncreate()来解决问题,但这仍然无效,有什么可以解决这个问题?Android系统服务不可用错误

public class MainActivity extends ListActivity { 
    String[] activities = {"package1", "package2", "package3"}; 

    private PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    //@SuppressWarnings("deprecation") 
    private PowerManager.WakeLock wakeLock; //= powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); 
     wakeLock.acquire(); 
     this.setListAdapter(new ArrayAdapter (this, android.R.layout.simple_expandable_list_item_1, activities)); 
    } 

    public void onPause(){ 
     wakeLock.release(); 
    } 

    public void onResume(){ } 

    public void onDestroy(){ } 

    /* public void onListItemClick(ListView, View, int, long){ }*/  
} 

回答

0

这条线:

powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 

应放置在您的onCreate方法。

在此之前,活动并不活跃,并且无法访问Android服务。