Android从服务开始活动

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在服务班?


倚天杖
浏览 423回答 3
3回答

慕村225694

在服务类内部:Intent dialogIntent = new Intent(this, MyActivity.class);dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(dialogIntent);

繁星淼淼

我也遇到了同样的问题,我想让你知道,所有这些都不适合我。对我有用的是: 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.

收到一只叮咚

另外值得一提的是:当我们的任务处于后台时,上面的答案很好,但如果我们的任务(由服务+一些活动组成)处于前台(即用户可以看到的活动之一),我唯一可以让它工作的方法是:    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没有再次实例化该活动。祝你好运!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android