如何使用官方Twitter应用程序使用意图发布推文,然后返回到您的应用程序?

时间:2012-11-12 09:48:41

标签: android twitter android-intent

我使用此代码开始使用官方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;
}

它运作正常,但是在发布推文(在Feed上)之后Twitter应用程序仍然打开。我也尝试使用startActivityForresult(),但它崩溃了错误:

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

发布推文后如何返回我的应用程序?

1 个答案:

答案 0 :(得分:0)

IMO官方Twitter应用程序在通过startActivityForResult方法调用收到ACTION_VIEW或ACTION_SEND Intent之后完成自身并不尊重Android Intent生命周期,而是保持打开状态并打破任何发送此类Intent的应用程序的体验。