【问题标题】:Launching an Activity from intent only if application is not running仅当应用程序未运行时才从意图启动 Activity
【发布时间】:2016-04-29 12:11:45
【问题描述】:

我的应用程序有一个用于登录的 Activity,LoginActivity,我已经为它定义了一个意图过滤器,这样如果有人插入 USB 设备,就会启动 LoginActivity。此方案运行良好。

代码:

<activity
    android:name=".main.login.LoginActivity"
    ...
    >
  <intent-filter>
      <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
  </intent-filter>

  <meta-data
      android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
      android:resource="@xml/device_filter"
      />
</activity>

但是,当应用程序运行时,会发生这种情况: 我正在连接 USB 设备并被“重定向”到登录屏幕 (LoginActivity)。在这种情况下,我不想启动新活动。

我应该怎么做才能得到想要的行为?

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    将此添加到您在 AndroidManifest.xml 中的活动中:

    android:launchMode="singleTop"
    

    https://developer.android.com/guide/topics/manifest/activity-element.html#lmode

    【讨论】:

      【解决方案2】:

      你应该像下面这样放置意图过滤器而不是你的代码。

                  <action android:name="android.intent.action.MAIN" />
      
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
      

      【讨论】:

      • 使用此代码就像根本没有代码(在应用程序未启动时不会启动 LoginActivity)......这当然是显而易见的,因为操作不正确。我会尝试其他操作
      • 不适用于:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多