Нет, это фактически работает на Lollipop (и даже на Зефир - я проверил).
The documentation об этом методе говорит:
Вызывается, когда текущее окно усилений деятельности или теряет фокус. Это лучший индикатор того, видна ли эта активность пользователю . Реализация по умолчанию очищает состояние отслеживания ключей, поэтому всегда следует вызывать .
Я написал очень простой один-Activity-тест приложение: MainActivity.java
public class MainActivity extends AppCompatActivity {
TextView statusTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
statusTextView = (TextView)findViewById(R.id.statusTextView);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
String newStatus = statusTextView.getText() + (hasFocus? "Got focus" : "Lost focus") + "\n";
statusTextView.setText(newStatus);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<TextView
android:id="@+id/statusTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Так, переместив приложение на фоне назад и вперед, вы можете увидеть, как состояние меняется.
http://developer.android.com/intl/ru/reference/android/app/Activity.html#onWindowFocusChanged%28boolean%29 - вы делаете что-то не так – pvllnspk