1
前幾天我發現了這段代碼,但它不起作用。有人可以解釋我爲什麼嗎?我想檢測用戶是否鎖定了設備。它必須打印第2點,第1點和第2點(如果手機已解鎖,然後再次鎖定和解鎖),但它僅打印第2點,這就是全部。而已。 我的活動:檢測設備是否鎖定
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService(new Intent(MainActivity.this, MyService.class));
}
});
}
}
爲MyService:
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
KeyguardManager kgMgr =
(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean showing = kgMgr.inKeyguardRestrictedInputMode();
if (showing){
Log.i("Point ", "1");
}else{
Log.i("Point ", "2");
}
}
}
}
[檢測時屏幕被鎖定(http://stackoverflow.com/questions/8317331/detecting-when-screen-is-locked) – Strider
@strider這不是一個重複,因爲我的可能的複製問爲什麼這個代碼不起作用,而不是如何做到這一點。 –
beacuase你的代碼在創建服務時只運行一個 –