【发布时间】:2015-03-06 01:47:05
【问题描述】:
我正在构建一个启动器/主屏幕替换应用程序,我注意到所有启动器都允许用户按主页进入启动器的第一个屏幕。因此,显然可以为家庭替换应用程序收听 home 键,但我无法弄清楚如何。
当用户在我的启动器中按下 home 键时,如何监听 home 键并触发 setCurrentItem(0)?
编辑
到目前为止,我有两个选择:
@Override
public void onPause() {
super.onPause();
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
if(!this.isFinishing())
{
if (sharedPrefs.getBoolean("user_called", false))
{
// Si fue por una llamada del usuario eliminar bandera y no hacer nada
Utils.setUserCalled(getApplicationContext(), false);
}
else
{
mPager.setCurrentItem(0);
}
}
}
另一种方法是这样的:
Boolean appState = false;
@Override
public void onPause() {
super.onPause();
appState = false;
}
@Override
public void onResume() {
super.onResume();
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
if(!appState)
{
if (sharedPrefs.getBoolean("user_called", false))
{
// Si fue por una llamada del usuario eliminar bandera y no hacer nada
Utils.setUserCalled(getApplicationContext(), false);
}
else
{
mPager.setCurrentItem(0);
}
}
}
两者都使用名为 user_call 的标志来了解用户是否启动了呼叫。我现在的问题是当电话响起时两种方法都失败了。有没有办法过滤这些情况?
【问题讨论】:
-
你可能想看看这个scriptedpapers.com/2013/07/26/…
标签: android launcher homescreen