【发布时间】:2015-05-12 20:11:36
【问题描述】:
我正在开发一个 Android 项目,该项目应该通过共享活动从另一个应用程序获取字符串。
如果应用程序未处于活动状态,我可以通过 OnCreate 或单击按钮获取 getIntent 信息。但是当应用程序已经在后台启动时,如果另一个应用程序发送另一个意图,我会得到与 OnCreate 中相同的意图,而不是新的意图。
谢谢
Var
Intent: JIntent;
S: String;
begin
Try
Intent := SharedActivity.getIntent;
if Intent Nil Then
Begin
if TJIntent.JavaClass.ACTION_SEND.equals(intent.getAction) Then
Begin
S := JStringToString(intent.getStringExtra(TJIntent.JavaClass.EXTRA_TEXT));
End;
End;
Except
On E: Exception Do
ShowMessage(E.Message);
End;
雷米,
感谢您的回复。
我尝试了一切(我认为)但无法使其正常工作。我就是这样做的:
我按照 Brian 的解释,在没有 NFC 调用的情况下构建了一个新的 .Jar 文件,但它在启动时失败,这是来自 DDMS 的日志:
05-13 11:46:49.101: E/AndroidRuntime(16597): java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.blong.IntentTest/com.blong.nfc.NativeActivitySubclass}: java.lang.ClassNotFoundException:找不到类 路径上的“com.blong.nfc.NativeActivitySubclass”:DexPathList [[zip 文件 "/data/app/com.blong.IntentTest-1/base.apk"],nativeLibraryDirectories=[/data/app/com.blong.IntentTest-1/lib/arm, /vendor/lib, /system/lib]]
所以我从包含 NFC 的原始 .Java 文件中重新构建了 .Jar 文件,但它也不起作用。当应用程序处于后台并从新意图启动时,应用程序显示黑屏并在它出现时立即冻结,最后一件事是在 onNewIntent 过程中注释所有内容,结果相同 - 黑屏。
然后我意识到,当另一个应用发送意图时,应用启动了两次,两个实例都冻结了,见图。
我还尝试按照 ci_ post 中的建议将单顶添加到启动模式 - 没有成功。
我怎样才能让这么简单的事情发挥作用?
谢谢
【问题讨论】:
-
给我们一个和平的代码来查看您的电话
-
我在这里问过类似的问题stackoverflow.com/questions/28969169/… 不确定它是否足够接近复制。
-
@ci_ 如何实现 OnNewIntent() ?
标签: android delphi firemonkey