如何从服务启动活动?

是否可以从服务启动活动?如果是,我们如何实现?



萧十郎
浏览 367回答 3
3回答

ITMISS

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您的服务在哪里?

Smart猫小萌

即使该框架允许您从服务启动活动,也可能不是适当的解决方案。原因是在服务希望与用户交互时,服务任务可能是用户关注的重点,也可能不是。中断用户当前正在做的事情被认为是不良的设计形式,尤其是来自本应在后台运行的内容。因此,您应该考虑使用带通知服务的通知,该通知服务带有PendingIntent,可以在用户确定是时候进行调查时启动所需的活动。认为这是延迟的满足。

皈依舞

这肯定会解决您的问题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);
打开App,查看更多内容
随时随地看视频慕课网APP