在Android上发布Twitter意向并不总是新的推文

在Android上发布Twitter意向并不总是新的推文,android,android-intent,android-package-managers,Android,Android Intent,Android Package Managers,我有下面的代码,它启动了官方的Twitter应用程序(前提是用户安装了该应用程序),并直接进入一条包含一些预定义文本的新tweet 当twitter应用程序之前未启动或已使用“硬后退”按钮退出时,此功能正常工作,但存在一些随机行为(因为没有更好的词),这似乎取决于官方twitter应用程序中的用户活动。如果用户一直在查看twitter应用程序上的各种选项卡,然后通过按下home按钮并启动或使用long hold press方法更改到我的应用程序,则my intent只会启动到他们查看的最后一个t

我有下面的代码,它启动了官方的Twitter应用程序(前提是用户安装了该应用程序),并直接进入一条包含一些预定义文本的新tweet

当twitter应用程序之前未启动或已使用“硬后退”按钮退出时,此功能正常工作,但存在一些随机行为(因为没有更好的词),这似乎取决于官方twitter应用程序中的用户活动。如果用户一直在查看twitter应用程序上的各种选项卡,然后通过按下home按钮并启动或使用long hold press方法更改到我的应用程序,则my intent只会启动到他们查看的最后一个twitter屏幕,并不总是启动以编写新的推文帖子

是否有任何方法可以避免这种情况,或者我的代码天生就是为这种行为设置的,我将如何进行修改

public void launchTwitter() {
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Some text");
        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, getString(R.string.twittertext));
        final PackageManager pm = this.getPackageManager();
        final List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
        int count = 0;
        for (final ResolveInfo app : activityList) {
            count++;
            if (app.activityInfo.name.equals("com.twitter.android.PostActivity")) {//"com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
                final ActivityInfo activity = app.activityInfo;
                final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
                shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                shareIntent.setComponent(name);
                startActivity(shareIntent);
                break;
            }
            else if(count == activityList.size()) {
                Toast.makeText(Home.this, "No suitable Twitter apps found.",
                        Toast.LENGTH_SHORT) .show();
                break;              
                }
        }
}
public void launchTwitter(){
意向共享意向=新意向(android.content.Intent.ACTION\u SEND);
shareIntent.setType(“文本/普通”);
shareIntent.putExtra(android.content.Intent.EXTRA_主题,“一些文本”);
putExtra(android.content.Intent.EXTRA_TEXT,getString(R.string.twittertext));
final PackageManager pm=this.getPackageManager();
最终列表activityList=pm.querytentActivities(shareIntent,0);
整数计数=0;
对于(最终解决方案信息应用程序:activityList){
计数++;
if(app.activityInfo.name.equals(“com.twitter.android.PostActivity”){/“com.twitter.android.PostActivity”.equals(app.activityInfo.name)){
最终活动信息活动=app.ActivityInfo;
最终组件名称=新组件名称(activity.applicationInfo.packageName,activity.name);
shareIntent.addCategory(Intent.CATEGORY_启动器);
shareIntent.setFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_重置_任务_,如果需要);
setComponent(名称);
startActivity(shareIntent);
打破
}
else if(count==activityList.size()){
Toast.makeText(Home.this,“未找到合适的Twitter应用程序”,
吐司。长度(短)。show();
打破
}
}
}