4

このコードを使用して、公式 Twitter アプリを使用して Twitter への投稿を開始します。

    Intent twitterIntent = new Intent(Intent.ACTION_VIEW); //Intent.ACTION_VIEW
    twitterIntent.setAction("android.intent.action.SEND");
    twitterIntent.setFlags(0x3000000);  
    twitterIntent.setType("text/plain");    
    twitterIntent.setClassName("com.twitter.android", "com.twitter.android.PostActivity");
    twitterIntent.putExtra(Intent.EXTRA_TEXT, ("Random post"));
    startActivity(twitterIntent);

また、このインテントを使用する前に、次のように使用できるかどうかを確認します。

public static boolean canReceiveIntent (Intent intent, Context c) {

    PackageManager packageManager = c.getPackageManager();
    List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
    boolean isIntentSafe = activities.size() > 0;

    return isIntentSafe;
}

問題なく動作しますが、ツイートを (フィードに) 投稿した後も Twitter アプリが開いたままになります。startActivityForresult() も使用してみましたが、エラーでクラッシュします:

java.lang.RuntimeException: android.util.AndroidRuntimeException: FORWARD_RESULT_FLAG used while also requesting a result

ツイート投稿後にアプリに戻るには?

4

1 に答える 1

0

IMO の公式 Twitter アプリは、ACTION_VIEW または ACTION_SEND インテントが startActivityForResult メソッドの呼び出しを介して受信された後に終了することで、Android インテントのライフサイクルを尊重していません。

于 2013-01-15T14:35:22.733 に答える