处理最近的应用程序点击并在Android中按下主页

时间:2012-06-20 13:01:51

标签: java android security android-manifest

我正在为孩子们制作一个应用程序,一旦你进入应用程序,你就无法在没有密码的情况下退出,这是我在菜单中要求的。现在我想如果在应用内部我按下应用程序中的主页按钮它应该保持相同的活动。我搜索了很多,但到处都是解决方案是在清单中添加过滤器,但这些对我来说效果不佳。我希望在应用退出时将我的活动从启动器中删除,然后再询问是否启动应用程序。

对于同一个应用程序,如果我按下最近的应用程序按钮,其中一个被孩子点击也应该是相同的活动或有任何方法来阻止最近的应用程序按钮。

我试过这个

<activity
    android:label="@string/app_name"
    android:launchMode="singleInstance"
    android:name=".MyActivity"
    android:screenOrientation="landscape"
    android:excludeFromRecents="true"
    android:taskAffinity=""
    android:stateNotNeeded="true" >
    <intent-filter >
        <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.HOME" />
         <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

3 个答案:

答案 0 :(得分:2)

  

我正在为孩子们制作一个应用程序,一旦你在应用程序内部无法退出而没有我在菜单中询问的密码。

幸运的是,出于明显的安全原因,这是不可能的。

  

现在我想如果在应用程序中我按下应用程序中的主页按钮它应该保持相同的活动,我搜索了很多,但无处不在解决方案是在清单中添加过滤器,但这些对我来说效果不佳。

“对我不好”对你的症状完全无用的解释。您的SDK中有一个Home示例应用,用于演示如何设置主屏幕。

  

对于同一个应用程序,如果我按下最近的应用程序按钮,其中一个被孩子点击也应该是相同的活动或有任何方法来阻止最近的应用程序按钮。

这些都不可能。

如果您想制作单一用途的Android设备,则需要在固件级别执行此操作。

答案 1 :(得分:1)

您可以将应用变成启动器。我的发射器通常看起来像:

<activity android:name=".MyLauncher">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.HOME"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

当用户选择您的启动器作为默认设置时,当您在应用程序中时,主页键基本上不会执行任何操作。

答案 2 :(得分:0)

从API 14开始,这就像魅力一样工作;在模拟器4.4v,5.0v,7.0v,8.0v,9.0v上测试;这是解决问题的人的链接:https://stackoverflow.com/a/55129289/9497126