2009-06-05 5 views
3

Erstens, bitte wechseln Sie nicht zu serverfault. Es ist in der Tat eine Programmierfrage :-)Entwickeln stromverbrauchsbewusster Anwendungen

Wir entwickeln gelegentlich verbundene Anwendungen. Diese Anwendungen befinden sich auf Laptops und Handhelds. In meinem Fall läuft die Anwendung auf einem kleinen Servlet-Container (wie Jetty).

Die Anforderung ist, dass die Anwendung sich selbst aussetzen sollte, wenn das System inaktiv ist. Wenn der Deckel des Laptops geschlossen ist, befinden sich die Anwendung und der Servlet-Container im Suspend-Modus.

Sind solche Dinge ein Merkmal des Betriebssystems selbst oder kann ein solches Energiebewusstsein in die Anwendung eingebaut werden? Wenn es in die Anwendung eingebaut werden kann, wie?

Antwort

2

Jedes Betriebssystem bietet eine Reihe von APIs und Benachrichtigungen, die Sie entsprechend verwenden und abonnieren können. Windows beispielsweise sendet eine WM_POWERBROADCAST Nachricht an alle Fenster, bevor ein Energieereignis auftritt. Lesen Sie weiter unter Power Management Abschnitt bei MSDN.

Allerdings möchten Sie die Energie bewusst Funktionen in einer Java-Anwendung, die Sie benötigen eine Art von JNI-Brücke. Es gibt einen Artikel codeproject über das Erkennen von Standby und das Ablehnen der Anfrage (obwohl es unter Windows Vista/7 nicht mehr möglich ist, Leistungsübergänge zu verweigern).

Verwandte Themen