如何使用Intent从另一个打开的应用程序切换到我的应用程序?

问题描述

我希望有人能提供帮助。

我正在尝试制作“ App Lock”样式的应用程序,但是如果启动了“ Locked App”,则无法切换到我的应用程序。

搜索了堆栈溢出,似乎有很多答案只是说要使用意图。

这不会产生任何错误,我可以看到它在调试时被调用。但是,当它被调用时,它似乎没有任何作用。当我希望它切换到我的应用程序时,用户可以自由地继续使用“锁定的应用程序”。

这是我的代码。它在服务类中,并使用处理程序每​​隔几秒钟检查一次“当前应用”(吐司通过向我展示当前应用来验证这一点)。

         if(name.equals("com.m.lockedAppExample")){
            Intent i = new Intent(DetectAppService.this,MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            DetectAppService.this.startActivity(i);
        }
        Toast.makeText(DetectAppService.this,name,Toast.LENGTH_SHORT).show();

有人建议将其添加到清单中,这是我尝试过的(以及其他变体)。但这似乎无能为力。

android:launchMode="singleTask"

请有人帮忙吗?

更新

对此仍然没有喜悦。我尝试从OnStartCommand而不是OnCreate调用代码,就像这个人在这里所做的一样:

Pending intent get service

也许是因为他们正在使用PendingIntent?这让我想知道我是否应该使用PendingIntent,但是我看到被调用的唯一方法是通过AlarmManager或通过通知-我不认为这两种方法都适合我想要实现的目标。>

更新2

经过研究,似乎使用ServiceIntent比使用简单的Service更合适,因为它是长期的。

我已经相应地调整了代码,并将startActivity方法放置在onHandleIntent中,但是我仍然遇到相同的问题-正在调用它,但是活动没有开始。

   protected void onHandleIntent(@Nullable Intent intent) {
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    DetectAppService.this.startActivity(i);
   }

奇怪的是,这些解决方案都没有起作用,并且似乎有完全相同的问题。我想知道这些类是否真的很好,但是问题出在清单上还是什么?

搜索继续:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)