Android 与其他文本和图像共享意图

Android 与其他文本和图像共享意图,android,Android,我正在尝试与Andriod中的另一个应用程序共享信息 我试过了,但效果很慢。有更好的方法吗 try { Uri imageUri = null; try { imageUri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, nu

我正在尝试与Andriod中的另一个应用程序共享信息

我试过了,但效果很慢。有更好的方法吗

       try {
            Uri imageUri = null;
            try {
                imageUri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), 
                    bitmap, null, null));

            } catch (Exception e) {e.printStackTrace();}

            shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_TEXT, contentText);
            shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
            shareIntent.setType("*/*");

        } catch (android.content.ActivityNotFoundException ex) {
            ex.printStackTrace();
        }

        new PopUpShareDialog().new Launchables(context, dialogShare, socialGv).execute();


 class Launchables extends AsyncTask<String, String, JSONObject>{
    ProgressDialog progressDialog;
    Context context;
    List<ResolveInfo> launchables;
    Dialog dialogShare;
    ExpandableHeightGridView socialGv;

    public Launchables(Context context, Dialog dialogShare, ExpandableHeightGridView socialGv){
        this.dialogShare = dialogShare;
        this.socialGv = socialGv;
        this.context = context;
    }

    @Override
    protected void onPreExecute() { 
        progressDialog = ProgressDialog.show(context, "", "" + context.getString(R.string.popup_loaded));
    }

    @Override
    protected JSONObject doInBackground(String... params) {
        // TODO Auto-generated method stub
        launchables = context.getPackageManager().queryIntentActivities(shareIntent, 0);

        return null;
    }

    @Override
    protected void onPostExecute(JSONObject json) {
        progressDialog.dismiss();


        Log.d("", "PackageManager");    

        Collections.sort(launchables, new ResolveInfo.DisplayNameComparator(context.getPackageManager()));

        shareSocAdapter = new ShareSocialsAdapter(context.getPackageManager(), launchables, context);
        socialGv.setAdapter(shareSocAdapter);   

        socialGv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                ResolveInfo launchable = shareSocAdapter.getItem(position);
                ActivityInfo activity = launchable.activityInfo;
                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);
                context.startActivity(shareIntent);  

            }
        }); 

        dialogShare.show();

    }
}
试试看{
Uri-imageUri=null;
试一试{
imageUri=Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver()),
位图,空,空);
}catch(异常e){e.printStackTrace();}
shareIntent=新的Intent();
shareIntent.setAction(Intent.ACTION\u SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT,contentText);
shareIntent.putExtra(Intent.EXTRA_流,imageUri);
shareIntent.setType(“*/*”);
}捕获(android.content.ActivityNotFoundException ex){
例如printStackTrace();
}
新的PopUpShareDialog()。新的启动项(上下文、对话共享、社交GV)。执行();
类Launchables扩展了异步任务{
进行对话进行对话;
语境;
列出可发射物品;
对话共享;
可扩展高度网格视图社会GV;
公共启动(上下文上下文、对话框共享、ExpandableHeightGridView社交GV){
this.dialogShare=dialogShare;
this.socialGv=socialGv;
this.context=上下文;
}
@凌驾
受保护的void onPreExecute(){
progressDialog=progressDialog.show(context,“,”+context.getString(R.string.popup_-loaded));
}
@凌驾
受保护的JSONObject doInBackground(字符串…参数){
//TODO自动生成的方法存根
launchables=context.getPackageManager().QueryInputActivities(shareIntent,0);
返回null;
}
@凌驾
受保护的void onPostExecute(JSONObject json){
progressDialog.disclose();
Log.d(“,“PackageManager”);
Collections.sort(launchables、new ResolveInfo.DisplayNameComparator(context.getPackageManager());
shareSocAdapter=新的ShareSocialAdapter(context.getPackageManager(),launchables,context);
socialGv.setAdapter(shareSocAdapter);
socialGv.setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
ResolveInfo launchable=shareSocAdapter.getItem(位置);
ActivityInfo activity=launchable.ActivityInfo;
ComponentName=新组件名(activity.applicationInfo.packageName,activity.name);
shareIntent.addCategory(Intent.CATEGORY_启动器);
shareIntent.setFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_重置_任务_,如果需要);
setComponent(名称);
背景。开始触觉(共享意图);
}
}); 
dialogShare.show();
}
}

你说的“我试过了,但它运行得很慢”是什么意思?tupie voprosi ne zadavay,vrode je ponyatno napisal blyaTry删除集合。排序(launchables,new ResolveInfo.DisplayNameComparator(context.getPackageManager())。这将在内部调用多个ResolveInfo.loadLabel函数,这会占用太多时间。