android startActivity from intent in service [dupl

2019-04-30 02:09发布

问题:

This question already has an answer here:

  • android start activity from service 6 answers

i try to use intent in service but when i try this :

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

got this error on logcat :

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

so i tried this from here :

android start activity from service

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

but this do nothing and i did not get error in logcat

what wrong ?

回答1:

Have you tried your own code (using this as context), but just add the flags as the error tells you?

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


回答2:

this may help

in Service class you get context and initialize with Context mContext

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


回答3:

There is nothing wrong with your code. It should work. Your problem is something else. Make sure MainUploadToYoutube activity is defined in the manifest and app may not crash once this activity is lunched.