1

アプリケーションでいくつかの共有インテントを使用していますが、共有するとアプリケーションがバックグラウンドで移動し、共有後にアクティビティが破棄されます。私はもう試した:

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);


    }
4

1 に答える 1

0

あなたのマニフェストに以下を追加してください

 <application......android:noHistory="false">....</application>
于 2019-07-18T10:26:10.620 に答える