我有一个覆盖所有应用的视图。我想在软键按下(主页,后退和最近)屏幕上关闭叠加视图。我有一个透明的活动,没有内容正在启动具有叠加视图的服务。
public class SampleOverlayShowActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startService(new Intent(this, SampleOverlayService.class));
}
@Override
protected void onPause() {
SampleOverlayService.stop();
finish();
super.onPause();
}
}
内部清单
<activity
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="SampleOverlayShowActivity"
android:excludeFromRecents="true"
android:theme="@android:style/Theme.Dialog" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
一切正常,期待最近的应用程序。活动仍显示在最近的应用程序按钮按下。当我再次按下最近的应用程序按钮时,它被删除了。
答案 0 :(得分:1)
这比尝试覆盖软键行为以进行清理要简单得多。而是确保启动活动,以便它没有最近的痕迹。从清单表示添加noHistory和excludeFromRecents
<activity android:excludeFromRecents="true"
android:noHistory="true"
android:name=".."
...>
<intent-filter>
...
</intent-filter>
</activity>
请注意,android:excludeFromRecents仅适用于该任务,因此您可能希望使用适当的标记(android:launchMode="singleTask"
)确保活动也是新任务