Java 从线程创建意图

Java 从线程创建意图,java,android,multithreading,user-interface,android-intent,Java,Android,Multithreading,User Interface,Android Intent,我需要从线程创建意图: final Runnable installapps = new Runnable() { public void run() { String[] fnames = appsPath.list(); for (String curfile : fnames) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDat

我需要从线程创建意图:

final Runnable installapps = new Runnable() {
    public void run() {
        String[] fnames = appsPath.list();
        for (String curfile : fnames) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.fromFile(new File(path)),
                    "application/vnd.android.package-archive");
            startActivity(intent);
        }
    }
};
我尝试使用runOnUiThread,但仍然无法完成(应用程序崩溃)


谢谢

您需要从
活动
类开始新的
意图
。然后简单地调用:

Intent intent = new Intent(this);

使用处理程序和StartActivityForResult()创建。它启动安装意图,等待任何结果(仅关闭意图),然后执行下一个结果

handler.sendEmptyMessage(0)

private Handler=new Handler(){
@凌驾
公共无效handleMessage(消息消息消息){
appcounter++;
if(appcounter
您需要将活动的引用传递给
Intent
构造函数。在此处发布日志,可能有很多原因。编辑问题。我有一个循环,它一个接一个地执行意图。我怎样才能从thred做到这一点?也许我还不明白答案…不过,简单地把意图放在一个循环中,这不是一个好主意,因为意图用于启动
活动
,所以让循环启动几个
活动是没有意义的,因为一次只能运行一个活动。也许你应该更好地描述你真正想做的事情。我正在制作一个逐个安装APK的应用程序。这就是为什么我需要一个接一个的循环,你能提供你在回答中所说的例子吗,因为我没听懂
private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        appcounter++;
        if (appcounter < fnames.length) { 
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(appsPath + "/" + fnames[appcounter])), "application/vnd.android.package-archive");
        startActivityForResult(intent, req);  
        }
    }
};

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      Log.d("CheckStartActivity","onActivityResult and resultCode = "+resultCode);
      // TODO Auto-generated method stub
      super.onActivityResult(requestCode, resultCode, data);
   //  appcounter++; 
    handler.sendEmptyMessage(0);


  }