L'appel de startActivity () depuis l'extérieur d'un contexte d'activité nécessite le FLAG_ACTIVITY_NEW_TASK
Je suis en train de démarrer une activité à l'intérieur d'une classe de service. J'ai un code suivant:
public class SendLinkService extends Service {
@Override
public IBinder onBind(Intent intent) {
//TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle bundle = intent.getExtras();
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, bundle.getString("URL"));
getApplicationContext().startActivity(Intent.createChooser(shareIntent, "Share via"));
return super.onStartCommand(intent, flags, startId);
}
}
Il donne exception sur la ligne suivante de onStartCommand() :
getApplicationContext().startActivity(Intent.createChooser(shareIntent, "Share via"));
source d'informationauteur Vikalp
Vous devez vous connecter pour publier un commentaire.
De l'essayer.
@hariharan réponse œuvres. Toutefois, il a également fonctionner sans réglage de l'Intention.FLAG_ACTIVITY_NEW_TASK dans le premier cas. Réponse plus précise est:
Pour
(Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) && (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
il est obligatoire d'ajouterIntent.FLAG_ACTIVITY_NEW_TASK
tout en appelantstartActivity()
de l'extérieur d'unActivity
contexte.Docs