同步Android活动
在我的最后一个问题中,我把这个话题引到了前面,所以我打开这个新问题来明确我真正想要的是什么。很抱歉给您带来不便 我想从我的主要活动开始,按照特定的顺序一个接一个地运行两个系统(Android)活动 正如我们所知,startActivity是一个异步操作,所以我不能保持特定的顺序 <>我想也许我应该在中间用对话框来做,但是运行对话框也是异步的。 现在,正如我所说的,我尝试运行的活动是Android活动,因此我甚至不能用startActivityForResult(或者mybe)启动它们,我可以,但我的主要(调用)活动没有得到任何结果 有什么诀窍我怎么处理这个问题 一些代码: 第一项活动:同步Android活动,android,Android,在我的最后一个问题中,我把这个话题引到了前面,所以我打开这个新问题来明确我真正想要的是什么。很抱歉给您带来不便 我想从我的主要活动开始,按照特定的顺序一个接一个地运行两个系统(Android)活动 正如我们所知,startActivity是一个异步操作,所以我不能保持特定的顺序 我想也许我应该在中间用对话框来做,但是运行对话框也是异步的。 现在,正如我所说的,我尝试运行的活动是Android活动,因此我甚至不能用startActivityForResult(或者mybe)启动它们,我可以,但我的
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
startActivity(intent);
第二项活动:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(tmpPackageFile
.getAbsoluteFile()),
"application/vnd.android.package-archive");
startActivity(intent);
正如你所看到的,我没有任何访问这些活动的权限,我只能从我的主要活动中运行三个意图 因为不能同时运行两个活动,所以先启动第一个活动,然后在第一个活动返回后启动第二个活动 一种跟踪方法是使用startActivityForResult方法,它应该允许您控制活动的创建顺序。试试这个
Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS);
startActivityForResult(intent, 0);
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
// start the other activity
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
我试过了,但没用。。onActivityResult在我的调用活动中从未被调用。。(mybe因为结果从未发回??)!!您是否尝试过不标记活动或新任务?在阅读文档时,似乎这可能是一个问题:我猜您启动设置活动是因为您的活动的某些设置设置不正确?为什么不能在onResume()中检查设置是否正确?在onResume中是什么意思?为什么我要在那里检查它?请使用预览查看您的代码格式是否正确,并添加一些文本,可能是一个带有链接的引用,用户可以从中了解有关您的答复的更多信息,更好地理解答案。
public class MainActivity extends AppCompatActivity
{
String msg="Android";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg,"1:application created");
}
protected void onStart() {
super.onStart();
Log.d(msg,"2 The onStart() ");
}
protected void onResume() {
super.onResume();
Log.d(msg, "3 The onResume() ");
}
protected void onPause() {
super.onPause();
Log.d(msg, "4 The onPause() ");
}
protected void onStop() {
super.onStop();
Log.d(msg, " 5 The onStop() ");
}
public void onDestroy() {
super.onDestroy();
Log.d(msg, "6 The onDestroy()");
}
}