android - 我可以根据用户偏好在启动时启动不同的 Activity 吗?

标签 android

我有一个 ListActivity 和一个 MapActivity。我想在用户在首选项窗口中选择的应用程序启动时启动这些 Activity 之一。

到目前为止,我看到在应用程序启动时启动 Activity 的唯一方法是在应用程序 list 文件中指定它使用...

  <activity android:name=".MyActiivty"
        android:label="@string/app_name">
     <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
  </activity>

我想我可能必须启动一个除了查看用户偏好之外什么都不做的 Activity ,然后启动 ListActivity 或 MapActivity。似乎浪费了一个 Activity ,只做另一个 Activity 。在我的研究中,我没有找到任何解决这个问题的方法。任何建议将不胜感激。

感谢和问候, 戴夫

最佳答案

首先,不要创建第三个 Activity 。只要有LAUNCHER Activity可以是列表或 map ,并让它调用 startActivity()另一个(加上 finish() )在 onCreate()在调用 setContentView() 之前需要的时候。这样,大约 50% 的时间,您会启动正确的 Activity 。

原则上,您可以让两个 Activity 都有 LAUNCHER <intent-filter> ,只启用一个。但是,这不适用于桌面快捷方式,它将路由到特定 Activity (无论他们在创建快捷方式时碰巧配置了哪个 Activity )。如果这不关心你,你可能会走这条路。但是,请尝试使用一些设备和自定义主屏幕对其进行测试——我不确定是否每个人都会立即接受您的更改。

关于android - 我可以根据用户偏好在启动时启动不同的 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074840/

相关文章:

安卓开发: Connect Android application to Mysql DB - No data returned on real device

android - 快速视频压缩就像whatsapp一样

java - Android ImageDownloader类: sHardBitmapCache NOT static when it should be?可能存在BUG

android - Xamarin.Forms 应用程序中的标签未在 WinPhone 上正确对齐文本

android - 我正在尝试在 android 中拍摄连续照片

java - RuntimeExceptionjava.lang.RuntimeException : Unable to instantiate activity ComponentInfo

android - 如何使用本地 aar 依赖?

android - 线圈不使用 Jetpack Compose 在模拟器中加载图像

android - 如何使用 Tag 代替 R.id。在自定义 ArrayAdapter 的构造函数中?

android - DAO 注入(inject)问题 - 在 Hilt Android 中找不到 RoomDatabase