我需要覆盖锁屏应用的主页按钮。我发现以下答案在主页按钮按下6秒后重新启动应用程序。
protected void onUserLeaveHint() {
Intent i=new Intent(this,MainActivity123.class);
startActivity(i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
Toast.makeText(this,"leaveHint",Toast.LENGTH_SHORT).show();
}
但我想立即启动应用程序。所以我猜他们是一个答案,如果我们使我们的应用程序默认启动应用程序比他们没有时间差距。所以我在我的清单中添加
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
但这不起作用,应用程序在6秒后仍然重启。 我该怎么办。
所以花一些时间进行研究,找到另一种方法{用于进入启动器的默认屏幕当你已经在主屏幕上} 该方法在startActivity()
中使用适当的标志自动调用@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Toast.makeText(this,"onNewEvent",Toast.LENGTH_SHORT).show();
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=
Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) {
Toast.makeText(this,"onNewEvent",Toast.LENGTH_SHORT).show();
//++goHome++
startActivity(intent);
}
}
该方法被调用但是app仍然在6秒后启动。没有进展任何建议........
答案 0 :(得分:0)
尝试通过实施此方法覆盖主页按钮:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_HOME)) {
Toast.makeText(this, "You pressed the home button!", Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
:)希望有所帮助。