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);
}