Android startActivities意向订单
我的应用程序需要在应用程序的设置屏幕上将对话活动显示为覆盖。这就是为什么应用程序需要同时启动多个活动 为此,我使用了startActivities方法Android startActivities意向订单,android,android-intent,Android,Android Intent,我的应用程序需要在应用程序的设置屏幕上将对话活动显示为覆盖。这就是为什么应用程序需要同时启动多个活动 为此,我使用了startActivities方法 Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", mContext.getPackageName(), null); intent.setData(uri)
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
intent.setData(uri);
Bundle bundle = new Bundle();
bundle.putString("SettingsItems", "Items");
Intent i = new Intent(mContext, AutoStartSettingsActivity.class);
i.putExtras(bundle);
Intent[] intents = new Intent[2];
intents[0] = intent;
intents[1] = i;
startActivities(intents);
但它总是先启动AutoStart设置活动活动(在我的应用程序中),然后启动应用程序设置屏幕。这就是设置屏幕覆盖对话框活动的原因,而对话框活动则相反
我确实尝试更改意图顺序,但失败:
Intent[] intents = new Intent[2];
intents[0] = i;
intents[1] = intent;
因此,问题是在startActivities意向数组中应该应用什么意向顺序,以便对话活动可以显示在应用程序设置屏幕上。要启动deep,请尝试逐个启动您的活动
Intent a = new Intent(this, SettingsActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(a);
Intent b = new Intent(this, DialogActivity.class);
startActivity(b);
这样,您可以同时启动活动a和b,禁止转换到SettingsActivity,并获得从当前活动到DialogActivity的单个转换。为了保证活动启动的顺序,我将执行以下操作:
- 启动
SettingsActivity
- 在应用程序中调用
时,启动对话框onPause()
AutoStartSettingsActivity
如果这不起作用,您可能需要在启动此设置中的
AutoStartSettingsActivity
之前增加一些延迟。此设置中的活动也覆盖了DialogActivity(这很少见,即90%的工作时间仍然存在问题),为了确保这项工作正常,您需要监视设置活动何时显示,然后启动对话框活动。使用可访问性服务可以做到这一点,但对于您的问题来说,这完全是小题大做,您需要获得用户的特殊许可,而用户可能不理解您为什么需要它。那么这可能是您能做的最好的了。如果您觉得延迟不起作用,请延长延迟时间