gpt4 book ai didi

android - 如何暂停父 Activity 直到子 Activity 完成

转载 作者:行者123 更新时间:2023-11-30 03:30:41 25 4
gpt4 key购买 nike

我有一些文件想通过蓝牙发送。这是我的代码

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ArrayList<Uri> uris = new ArrayList<Uri>();
String multifile[] = {"/sdcard/file1.txt", "/sdcard/file2.txt", "/sdcard/file3.txt"};
int len = multifile.length;
Intent Int = new Intent();

Int.setAction(android.content.Intent.ACTION_SEND_MULTIPLE);
Int.setType("*/*");

String packageName = null;
String className = null;
boolean found = false;
PackageManager pm = getPackageManager();
List appsList = pm.queryIntentActivities( Int, 0);

ArrayList<ResolveInfo> list = (ArrayList<ResolveInfo>) pm.queryIntentActivities(Int, PackageManager.PERMISSION_GRANTED);
for(ResolveInfo info: list) {
packageName = info.activityInfo.packageName;

if( packageName.equals("com.android.bluetooth")) {
className = info.activityInfo.name;
found = true;
break;// found
}
}

if (!found) {
Toast.makeText(MainActivity.this, "not foud bluetooth",
Toast.LENGTH_SHORT).show();
// exit
}

Int.setClassName(packageName, className);

for(int i=0;i<len;i++) {
File file=new File(multifile[i]);
uris.add(Uri.fromFile(file));
}

Int.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Int);
onStop(); //stop here till all file have been sent
//delete all files which is to be send
}
}

所有三个文件都已发送,但问题是 Mainactivity 的执行继续在 Intent Int 完成之前,由于在发送文件之前删除了所有文件请帮助如何停止执行 Mainactivity 直到 Int 发送所有文件

最佳答案

如果您的“mainactivity”正在启动子项,请使用 startActivityForResult() 启动它,并且在子项结果可用并指示它之前不采取进一步操作(不删除文件)完成无误。

如果没有这种父/子关系,有几种选择,但一个简单的方法是让较低级别的 Activity 广播一条消息,较高级别的 Activity 接收到消息,并且仅在接收到消息后才进行后续工作.

关于android - 如何暂停父 Activity 直到子 Activity 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com