Android 通过我的应用分享 link 和图片

Android share link and images through my application

我想通过我的应用程序添加共享图像或 link 的功能。 为此,我在清单中添加了那些过滤器

<activity android:name="MyActivity" 
          android:launchMode="singleTask"
          android:screenOrientation="portrait"
>
    <intent-filter>
       <action android:name="android.intent.action.SEND" />
       <category android:name="android.intent.category.DEFAULT" />
       <data android:mimeType="image/*" />
    </intent-filter>
    <intent-filter>
       <action android:name="android.intent.action.SEND" />
       <category android:name="android.intent.category.DEFAULT" />
       <data android:mimeType="text/plain" />
   </intent-filter>
</activity>

这个activity基本上是主要的,我的意思是当用户启动应用程序时,这个activity将被打开。

现在,当我滑动应用程序并通过我的应用程序分享 YouTube link 时,我得到了数据并且它工作正常,问题是当我启动应用程序然后按下主页按钮(在这种情况下该应用程序在后台运行),然后尝试共享一个 youtube link 我没有从 intent 中获取数据。

有什么建议吗?

您似乎将数据处理代码放入了您的 onCreate() 中。

尝试将数据处理代码放入 onStart() 中。

当您共享 link 时,第三方应用程序会在打开您的应用程序时为您提供要共享的数据。但是当您按下主页按钮时,不会存储数据。然后,当您返回时,数据将会丢失。

因此,当您从第三方应用程序中检索数据时,您需要将数据存储在一个变量中(例如)。

现在,您可以使用 onStart() 函数检索数据并显示在您的视图中。

提示: 我猜你可以使用 Singleton (also known as anti-pattern: read more).

看来您不仅应该在 onCreate 中添加处理,而且还应该在 onNewIntent 方法中添加处理。 如果 activity 已经创建,singleTask 强制 android 通过 onNewIntent 传递意图。