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

Android从服务开始活动

Android从服务开始活动

倚天杖 2019-06-21 15:25:33
Android从服务开始活动Android:public class LocationService extends Service {@Override     public void onStart(Intent intent, int startId) {         super.onStart(intent, startId);         startActivity(new Intent(this, activity.class));     }}我是从Activity在……里面Activity如果条件满足启动startService(new Intent(WozzonActivity.this, LocationService.class));从我的LocationService上述无法发射Activity,如何获得当前运行的上下文?Activity在服务班?
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

在服务类内部:

Intent dialogIntent = new Intent(this, MyActivity.class);dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(dialogIntent);


查看完整回答
反对 回复 2019-06-21
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

我也遇到了同样的问题,我想让你知道,所有这些都不适合我。对我有用的是:

 Intent dialogIntent = new Intent(this, myActivity.class);
 dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 this.startActivity(dialogIntent);

在我的一个子类中,存储在一个单独的文件中,我必须:

public static Service myService;myService = this;new SubService(myService);
Intent dialogIntent = new Intent(myService, myActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);myService.startActivity(dialogIntent);

所有其他的答案都给了我一个nullpointerexception.


查看完整回答
反对 回复 2019-06-21
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

另外值得一提的是:当我们的任务处于后台时,上面的答案很好,但如果我们的任务(由服务+一些活动组成)处于前台(即用户可以看到的活动之一),我唯一可以让它工作的方法是:

    Intent intent = new Intent(storedActivity, MyActivity.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    storedActivity.startActivity(intent);

我不知道action_view还是标志_Active_New_Task在这里是否有任何实际用途。成功的关键是

storedActivity.startActivity(intent);

当然,标志_Activity_REORDER_TOFORE_FOREAR没有再次实例化该活动。祝你好运!


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 422 浏览

添加回答

举报

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