我在上一个问题中提出了错误的主题,所以我打开这个新问题来清除我真正想要的东西。很抱歉给您带来不便。
我想从我的主要活动中按特定顺序依次运行两个系统(Android)活动。
现在我们知道,startActivity是一个异步操作,所以我不能保持特定的顺序。
所以我想也许我应该尝试在中间使用dialogBox但是运行一个dialogBox是异步的。
现在我说我尝试运行的活动是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);
你可以看到,我没有任何访问这些活动,我可以从我的主要活动运行thire意图。
答案 0 :(得分:2)
由于您无法同时运行2个活动,因此请先启动第一个活动,然后在第一个活动返回时启动第二个活动。
跟踪此方法的一种方法是使用startActivityForResult方法,它应该允许您控制活动的创建顺序。
答案 1 :(得分:1)
试试这个......
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
}
}
}
答案 2 :(得分:-1)
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()");
}
}