アプリケーションでいくつかの共有インテントを使用していますが、共有するとアプリケーションがバックグラウンドで移動し、共有後にアクティビティが破棄されます。私はもう試した:
android:configChanges="orientation|keyboardHidden|screenSize"
と
android:noHistory="true"
特定のアクティビティと、たとえば (google+、facebook、twitter、および電子メール) などの明示的なインテントの呼び出し
startActivityForResult(Intent.createChooser(intent,"Send mail..."),4);
そして私のActivityOnResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==FB_SIGN_ING){
callbackManager.onActivityResult(requestCode,resultCode,data);
} //else do nothing
}
更新: バックグラウンドからフロントに移動すると、アクティビティが破壊されることが少しわかりました。しかし、特定の構成とActivityOnResultを使用している場合でも、それを処理する方法。
インテント 例:
public void ShareByEmail(){
final String newsTitle = singleNews.get(0).getNews_title().trim();
String newsPhoto=SingleNewsImages.get(0);
String url = BASE_URL+newsPhoto;
final String newsLink = "http://motorcityarabia.com"+singleNews.get(0).getLink().trim();
final Uri uri = Uri.parse(url);
Target target = new Target() {
@Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("mailto:"));
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,newsTitle);
intent.putExtra(Intent.EXTRA_TEXT , Html.fromHtml("<strong><a href='"+newsLink+"'>"+newsTitle+"</a></strong><br/><a href='"+newsLink+"'>READ MORE</a>"));
intent.putExtra(Intent.EXTRA_STREAM, getLocalBitmapUri(bitmap));
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent,"Send mail..."),4);
}
@Override public void onBitmapFailed(Drawable errorDrawable) {
Toast.makeText(SingleNewsActivity.this, "Error Drawable", Toast.LENGTH_SHORT).show();
}
@Override public void onPrepareLoad(Drawable placeHolderDrawable) {
Toast.makeText(SingleNewsActivity.this, "Prepairing Image", Toast.LENGTH_SHORT).show();
}
};
Picasso.with(getApplicationContext()).load(url).into(target);
}