我试图在应用程序中使用onWindowFocusChanged
,但他们不支持棒棒糖。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.e(TAG, "onWindowFocusChanged, " + hasFocus);
mWindowhasFocus = hasFocus;
}
答案 0 :(得分:0)
不,它实际上是在制作Lollipop(甚至在Marshmallow上 - 我检查过)。
关于此方法的当活动的当前窗口获得或失去焦点时调用。 这是该活动是否可见的最佳指标 用户。默认实现清除密钥跟踪状态,因此 应该永远被召唤。
我写了一个非常简单的单活动测试应用程序:
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>
因此,通过来回移动应用程序到后台,您可以看到状态如何变化。