Programing

최근 애플리케이션 목록에서 애플리케이션을 제거하는 방법은 무엇입니까?

lottogame 2021. 1. 9. 09:15
반응형

최근 애플리케이션 목록에서 애플리케이션을 제거하는 방법은 무엇입니까?


Android는 사람들이 작업 / 애플리케이션을 완벽하게 처리 할 수 ​​있다고 생각하기 때문에이 작업을 허용하지 않을 것이라고 생각합니다. 그러나 제 경우에는 정말로 이것을해야합니다.

애플리케이션의 진입 점 역할을하는 활동 A가 있습니다. 이 활동에서 선호도를 읽고 시작할 활동 (예 : B 또는 C)을 결정합니다. 그 후 자동으로 완료됩니다. 따라서 활동 A는 사용자에게 나타나지 않습니다.

내 응용 프로그램은 sdcard에 항목을 저장하고 지속적으로 읽습니다. 따라서 sdcard가 마운트 해제되면 사용자에게 B 또는 C를 여는 대신 sdcard를 사용할 수 없다는 메시지를 표시해야합니다. sdcard를 사용할 수 없을 때 해당 메시지를 표시하도록 A에 체크 표시를 설정했습니다. 이 메시지가 표시되면 A는 B 또는 C를 시작하지 않습니다.

사용자가 응용 프로그램 시작 관리자에서만 내 응용 프로그램을 입력하면 모든 것이 완벽하게 작동합니다. 그러나 사용자가 최근에 연 경우 홈을 길게 눌러 내 응용 프로그램을 입력하고 최근 응용 프로그램 목록에서 선택할 수도 있습니다. 사용자가 그렇게하면 A를 건너 뛰고 B 또는 C로 직접 이동합니다. 둘 다 체크인하지 않았으므로 sdcard에 액세스하려고 할 때 예외가 발생하고 강제 닫기 대화 상자가 나타납니다.

이 문제를 해결하기 위해 수표를 B와 C로 옮길 수 있습니다. 하지만 앞으로는 A에서 시작된 활동의 수가 증가 할 것입니다. 6 개가 있으면이 수표를 6 곳에 복사해야합니다. 말할 필요도없이 이것은 매우 추하게 보이며 유지 관리의 악몽입니다.

따라서 가장 좋은 해결책은 sdcard가 마운트 해제 될 때 최근 애플리케이션 목록에서 내 애플리케이션을 제거하는 것입니다. 그러나이 작업을 수행하는 방법을 찾을 수 없습니다. 프로세스를 종료하거나 ActivityManager.restartPackage를 사용하더라도 여전히 목록에 나타납니다. 누구든지 목록에서 제거하는 방법을 알려줄 수 있습니까?


시험

<activity android:name=".MainActivity"
        android:excludeFromRecents="true" ...

귀하 AndroidManifest.xml의 활동 선언에서.


다른 속성은 활동을 동일한 패키지의 다른 활동과 분리하는 데 도움이 될 수 있습니다.

<activity 
android:name=".aActivity"
android:excludeFromRecents="true"
android:taskAffinity=""
android:launchMode="singleInstance">

android:excludeFromRecents="true"매니페스트 파일에 활동의 태그를 추가 하기 만하면됩니다.


AndroidManifest.xml을 설정해야합니다.

<activity>
  ...
  android:excludeFromRecents="true"
  ...
</activity>

또는이 활동 시작

intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

또한 AndroidManifest.xml에서도

<activity>
  ...
  android:label=""
  ...
</activity>

레이블을 비워두면이 활동이 최근 앱 목록에 표시되지 않습니다.


권장하지 않지만 다음 옵션을 시도해 보겠습니다.

옵션 1:

B와 C에서 다음을 추가하십시오.

protected void onPause() {
  finish();
}

옵션 2 :

Add to B and C the following in the AndroidManifest:

android:noHistory= "true"

Removing your application from the recent apps list is probably not possible, and definitely not the best solution. That will just confuse the user who expects all apps to behave similarly.

Regardless, I don't think it will solve your problem. If the user hits home while on Activity B, then selects your app from the home page, it will start Activiy B again.

There are a number of ways to solve the real problem. One easy one might be to create a base Activity that performs the SD card check, and have all of your activities extend from it. That way the check is only in one place.


OK, I know for a fact that it can be done in 2.3.4. The app Toddler Lock when opened clears the recent app list so that when you "Lock" your phone if you long press home key the list is blank. Unfortunately I have not found how to do it. So for anyone who is looking and reading postf that say it is not possible don't give up. I sure heck am not.


if you wanna exit Application on Button click use this code :

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

To kill the complete app and remove it from Runningapp list kill the app through its pid(its nasty)... use this lines before above code.

int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

ReferenceURL : https://stackoverflow.com/questions/3762763/how-to-remove-application-from-recent-application-list

반응형