简体   繁体   中英

Handle Recent apps click and home press in android

I am making an app for kids where once you're inside the app you can't exit without password which I am asking for in the menu. Now I want if inside app I press home button in the app it should remain on same activity. I searched a lot but everywhere the solution is adding filters in manifest but those are not working well for me. I want my activity to be removed from launcher when app exits and again ask if starts application.

And for the same app if i press recent app button and one of those is clicked by the kid also the app should be in same activity or if there any way to block the recent app button.

I tried this

<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>

I am making an app for kids where once you inside the app can't exit without password which i am asking in menu.

Fortunately, this is not possible, for obvious security reasons.

Now i want if inside app i press home button in the app it should remain on same activity, i searched a lot but everywhere the solution is adding filters in manifest but those are not working well for me.

"not working well for me" is a completely useless explanation of your symptoms. There is a Home sample app in your SDK that demonstrates setting up a home screen.

And for the same app if i press recent app button and one of those is clicked by the kid also the app should be in same activity or if there any way to block the recent app button.

Neither of those are possible.

If you want to make a single-purpose Android device, you will need to do so at the firmware level.

You can turn your app into a launcher. My launchers would typically look like:

<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>

When the user selects your launcher as the default, the home key will basically do nothing when you are in your application.

This is working like charm since API 14; tested on emulator 4.4v, 5.0v, 7.0v, 8.0v, 9.0v; Here is the link of guy who solved the question: https://stackoverflow.com/a/55129289/9497126

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM