相关疑难解决方法(0)

如何从最近的应用程序列表中删除应用程

我想Android不会让人们这样做,因为他们认为他们有完美的任务/应用程序处理.但是,在我的情况下,我真的需要这样做.

我有一个活动A作为我的申请的入口点.在该活动中,它读取偏好并决定开始哪个活动,比如B或C.之后,它完成自己.因此,活动A永远不会出现在用户身上.

我的应用程序将东西存储在SD卡上,并不断读取它.因此,当卸载SD卡时,我需要向用户显示sdcard不可用的消息,而不是打开B或C.我在A中设置一个检查以在sdcard不可用时显示该消息.显示该消息时,A不会尝试启动B或C.

如果用户只从应用程序启动器输入我的应用程序,事情就会完美.但是,我发现用户也可以通过长按home进入我的应用程序并从最近的应用程序列表中选择它,如果他最近打开它.当用户这样做时,它跳过A并直接转到B或C.我没有检查它们,因此在我尝试访问sdcard时抛出异常,并弹出强制关闭对话框.

我可以简单地将支票移到B和C来解决这个问题.但是在未来,从A开始的活动数量将会增加.如果有6个,我需要将此支票复制到6个地方.毋庸置疑,这看起来非常难看,而且是一场维护噩梦.

因此,最好的解决方案应该是在卸载SD卡时从最近的应用程序列表中删除我的应用程序.但是,我找不到如何做到这一点.即使终止进程或使用ActivityManager.restartPackage,它仍会出现在列表中.谁能告诉我如何从列表中删除它?

android

55
推荐指数
4
解决办法
5万
查看次数

Android - 清除任务标志不适用于PendingIntent

我有一个A> B> C的任务堆栈.我目前在C上,然后我按下主页按钮.我收到通知,意图将我带到活动A.我按下通知,我在A但是如果我按回去,我会转到C,然后是B,然后是A.

我正在设置我的PendingIntent.有什么明显错误吗?

final Intent notificationIntent = new Intent(mContext, ActivityA.class);
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);


        PendingIntent contentIntent = PendingIntent.getActivity(myContext, 0, notificationIntent, 0);
Run Code Online (Sandbox Code Playgroud)

编辑1:

我在这里尝试了这个建议:清除任务中的所有活动?

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
Run Code Online (Sandbox Code Playgroud)

但我仍然得到相同的结果.我的活动A在我的应用程序任务堆栈中开始,我按回去C,然后是B,然后是A.

我开始认为这在Android中是不可能的,或者在使用挂起的意图时是不可能的.

编辑2: 这不是需要什么标志的问题.更多的问题可能是错误的,标志似乎没有任何影响.

android android-intent android-notifications android-pendingintent

15
推荐指数
5
解决办法
9622
查看次数

如何使用IntentCompat.makeRestartActivityTask()?

我正在尝试实现一个按钮,这将导致我的应用程序返回到第一个活动,并表现得好像它(几乎)重新开始.这段代码

Intent newIntent =
        new Intent(currentActivity.getApplicationContext(), StartActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_CLEAR_TASK);
currentActivity.startActivity(newIntent);
Run Code Online (Sandbox Code Playgroud)

对于运行Android 4.1的较新平板电脑似乎工作正常,但它不适用于运行Android 2.3.4的旧设备.

我发现了几个关于此的线索:

Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK无法使用Android

清除任务中的所有活动?

阅读细则让我相信我应该使用android-support-v4.jar中的IntentCompat类,http://developer.android.com/reference/android/support/v4/content/IntentCompat.html

不幸的是,文档中没有任何示例,我不确定如何使用IntentCompat.我发现的唯一例子是:不用android 2.3启动MainActivity

这让我相信我应该这样做:

    Intent newIntent = IntentCompat.makeRestartActivityTask(cn);
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个编译器错误,说"makeRestartActivityTask"是一个未定义的符号.

我猜这意味着我没有正确地将android-support-v4.jar添加到我的构建环境(IntelliJ IDEA 12社区版),但我尝试过几种不同的方式,但它仍然不起作用.

所以我有两个问题:

  1. 我尝试使用IntentCompat看起来是否正确?

  2. 如何让编译器停止说"makeRestartActivityTask"是一个未定义的符号?

android android-intent

11
推荐指数
2
解决办法
6398
查看次数

如何在按下主页按钮时完成()一个活动

由于一个复杂的原因,我需要能够在用户按下HOME按钮时完成()我的活动.

这里的故事是我有一个主屏幕小部件,它启动了我的应用程序的不同部分,它具有完全透明的活动(因此即使我的活动正在运行,主屏幕仍会显示).如果先前的活动通过"主页"按钮终止,则它们将被带到前台并遮盖主屏幕.

或者作为替代方案,我可以以某种方式强制完成()之前的活动吗?

android activity-finish android-activity

9
推荐指数
1
解决办法
2万
查看次数

如何在Android中清除任务并更改根活动?

情况

活动A - >活动B - >活动C.

当活动C开始时,我希望C成为根活动,而A和B完成.

我怎样才能做到这一点?

UDPATE

我在10级,所以我不能使用适用于11级和更高级别的CLEAR_TASK标志.强文

android task android-activity

5
推荐指数
1
解决办法
7317
查看次数