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

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

在使用它之前,我还会检查这个 Intent 是否可用:

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

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

最佳答案

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

关于android - 如何使用 Intent 使用官方 Twitter 应用程序发布推文,然后返回到您的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341450/

相关文章:

java - token ";"上的语法错误,,预期 Java 编程

java - 扩展 BaseObservable 的 ViewModel 和 Android ViewModel 类有什么区别?

android - Unity 5-无法重新打包资源

Android Studio - 找不到 org.jetbrains.kotlin :kotlin-stdlib:1. 1.3-2

java - Android - 语音识别而不是语音

android - 如何通过 Espresso 检查拨号器上的电话号码 - 通过 autoLink 触发的拨号器

android - 单击上传按钮后在另一个 Activity 中显示图像

twitter - 在Twitter API中进行批量查询?

javascript - 如何让 Facebook 分享按钮的计数器始终显示?

php - 通过curl匿名从twitter或facebook获取页面