On Android Api 19 (4.4) The Intent.createchooser Method Causes Intentserviceleak
Running my app on the new Android KitKat device (API 19, 4.4) I get 'Copied to Clipboard' everytime I try to create an Intent chooser. This is happening on Youtube, Tumblr and var
Solution 1:
Here's my workaround solution for this issue. I first detect if the device is running on KIT_KAT or higher, and instead of creating a chooser, I simply try to start the intent. This will cause Android to ask the user which application they want to complete the action with (unless the user already has a default for all ACTION_SEND intents.
IntentsendIntent=newIntent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// This will open the "Complete action with" dialog if the user doesn't have a default app set.
context.startActivity(sendIntent);
} else {
context.startActivity(Intent.createChooser(sendIntent, "Share Via"));
}
Solution 2:
@clu Has the answer right, just backwards lol. It should be this:
//Create the intent to share and set extrasIntentsendIntent=newIntent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
//Check if device API is LESS than KitKatif (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT)
context.startActivity(sendIntent);
else
context.startActivity(Intent.createChooser(sendIntent, "Share"));
This build check can be shortened to a one-liner as well:
//Create the intent to share and set extrasIntentsendIntent=newIntent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
//Check if device API is LESS than KitKat
startActivity(Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT ? sendIntent : intent.createChooser(sendIntent, "Share"));
Post a Comment for "On Android Api 19 (4.4) The Intent.createchooser Method Causes Intentserviceleak"