为了账号安全,请及时绑定邮箱和手机立即绑定

如何从服务启动活动?

如何从服务启动活动?

萧十郎 2019-10-19 15:53:35
是否可以从服务启动活动?如果是,我们如何实现?
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

android.app.Service是的后代,android.app.Context因此您可以startActivity直接使用。但是,由于您在任何活动之外都开始了此操作,因此需要FLAG_ACTIVITY_NEW_TASK在意图上设置标志。


例如:


Intent i = new Intent();

i.setClass(this, MyActivity.class);

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(i);

this您的服务在哪里?


查看完整回答
反对 回复 2019-10-19
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

即使该框架允许您从服务启动活动,也可能不是适当的解决方案。原因是在服务希望与用户交互时,服务任务可能是用户关注的重点,也可能不是。中断用户当前正在做的事情被认为是不良的设计形式,尤其是来自本应在后台运行的内容。

因此,您应该考虑使用带通知服务的通知,该通知服务带有PendingIntent,可以在用户确定是时候进行调查时启动所需的活动。认为这是延迟的满足。


查看完整回答
反对 回复 2019-10-19
?
皈依舞

TA贡献1851条经验 获得超3个赞

这肯定会解决您的问题


Intent intent = new Intent();

intent.setAction(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

ComponentName cn = new ComponentName(this, TaxiPlexer.class);

intent.setComponent(cn);

startActivity(intent);


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信