在服务中从意图启动android的活动

5

我尝试在服务中使用意图,但当我尝试这样做时:

Intent intent_facebook = new Intent (this,MainUploadToYoutube.class);
intent_facebook.putExtra("vid", vid);
startActivity(intent_facebook);

在logcat中遇到了这个错误:

Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

我从这里尝试了以下方法:

如何在Android服务中启动活动

Intent  intent_facebook = new Intent(getBaseContext(), MainUploadToYoutube.class);
intent_facebook.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity( intent_facebook);

但是这个什么也没做,而且我在logcat中也没有收到错误信息。

出了什么问题?

3个回答

3
你尝试过用this作为上下文,然后按照错误提示添加标志吗?
Intent intent_facebook = new Intent (this, MainUploadToYoutube.class);
intent_facebook.putExtra("vid", vid);
intent_facebook.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent_facebook);

在工作中,我添加了额外的intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);。 - idan

0

这可能会有所帮助

Service类中,您可以获得context并使用Context mContext进行初始化

 Intent intent = new Intent(mContext,MainUploadToYoutube.class);   
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
 ((Activity)mContext).startActivity(intent);

1
Context mContext = getBaseContext(); Intent intent2 = new Intent(mContext,MainUploadToYoutube.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity)mContext).startActivity(intent2); 我尝试了这个,但是mcontext无法转换为activity。
- idan

0

你的代码没有问题,应该可以正常工作。你的问题可能出在其他地方。请确保MainUploadToYoutube活动在清单文件中有定义,并且应用程序在启动此活动后不会崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接