问题描述
我希望有人能提供帮助。
我正在尝试制作“ 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调用代码,就像这个人在这里所做的一样:
也许是因为他们正在使用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 (将#修改为@)