This sayfa tam olarak aradığınız şey hakkında bir eğiticiye sahiptir. o sayfadan kopyalanan
Kodu (sırayla okunur bağlantıya doğrudan kullanışlı bir şeye cevap bir bu çevirmek):
1) niyet almak için başvuruda bir sınıf oluşturun. Örneğin, aşağıdaki alıcı tek başına duruyor ve kısmen 2 kullanılmak üzere bir statik değişkeni ayarlar:
2)/kapalı olaylara ekranı almak için aktiviteyi değiştirin.
public class ExampleActivity extends Activity {
@Override
protected void onCreate() {
// initialize receiver
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
// your code
}
@Override
protected void onPause() {
// when the screen is about to turn off
if (ScreenReceiver.wasScreenOn) {
// this is the case when onPause() is called by the system due to a screen state change
System.out.println("SCREEN TURNED OFF");
} else {
// this is when onPause() is called when the screen state has not changed
}
super.onPause();
}
@Override
protected void onResume() {
// only when screen turns on
if (!ScreenReceiver.wasScreenOn) {
// this is when onResume() is called due to a screen state change
System.out.println("SCREEN TURNED ON");
} else {
// this is when onResume() is called when the screen state has not changed
}
super.onResume();
}
}
@Yaniv: sizin yayın alıcısı statik değişkeni kontrol edecek Kişisel alıcı sadece alınan niyet sebebini bilmek "Ben cihaz uyku gittiğinde/başvurumu biliyorum ekranını kapatmak gerekir. " -- niye ya? Android uygulamalarının% 99,999'unun buna ihtiyacı yoktur. Bunu yapmanın tek yolu, oldukça kullanıcı-düşmanca davranışı varsayar (ör., Her zaman çalışan bir servis). Yani, neyi başarmaya çalıştığınızı açıklayın, böylece daha iyi bir çözüm bulmaya yardımcı olabiliriz. – CommonsWare