Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以意图启动活动并获取引用_Android_Android Studio_Android Intent_Android Library - Fatal编程技术网

Android 以意图启动活动并获取引用

Android 以意图启动活动并获取引用,android,android-studio,android-intent,android-library,Android,Android Studio,Android Intent,Android Library,我目前正在android中使用一个应用程序项目,其中包含一个库。 这个库本身就是一个应用程序,因为我想将它集成到主应用程序中,我将它添加为一个外部库 一切正常,我使用这段代码启动库应用程序 Intent i = new Intent(this, Launcher.class); startActivity(i); 问题是我需要控制这个作为库添加的应用程序我需要禁用和启用功能,这些功能只有在我引用了我启动的活动后才能执行。 还有一件事,我想在主应用程序中创建一个菜单来控制库。因此,我不希望在创建

我目前正在android中使用一个应用程序项目,其中包含一个库。

这个库本身就是一个应用程序,因为我想将它集成到主应用程序中,我将它添加为一个外部库

一切正常,我使用这段代码启动库应用程序

Intent i = new Intent(this, Launcher.class);
startActivity(i);
问题是我需要控制这个作为库添加的应用程序我需要禁用和启用功能,这些功能只有在我引用了我启动的活动后才能执行。

还有一件事,我想在主应用程序中创建一个菜单来控制库。因此,我不希望在创建信息时立即传递信息,而是在用户单击不同选项时进行更改。

基本上我有应用程序A和应用程序B,它们作为库集成在A上。 正常启动后,我想从应用程序A的菜单中控制应用程序B。从中,让我们假设a中的菜单包含关于B的不同选项。这就是我想要参考的原因。

我的第一个问题是,是否有可能获得我开始的活动的参考资料

如果不可能,根据您的经验,实现这一点的最佳方法是什么,请记住,我无法开始在onCreate上实现方法。这个应用程序有一个清晰的流,类到类,而且它相当大

是否有可能获得我开始时的活动的参考资料

不是真的

因此,我不希望在创建信息时立即传递信息,而是在用户单击不同选项时进行更改

那么,要么第二个活动存在,要么不存在。通常,当用户在您的第一个活动(带有菜单的活动)中时,它不会。在这种情况下,您别无选择,只能让第一个活动通过
Intent
extras告诉第二个活动要做什么,然后让第二个活动解释这些extras

如果第二个活动已经存在,并且您以某种方式确信它已经存在,那么欢迎您使用类似事件总线的方式让第一个活动发送由第二个活动接收的消息


在任何一种情况下,您都需要修改第二个活动,或对第二个活动进行子类化,以处理此活动间消息传递。

iirc您可以在已打开的活动(活动B)中执行类似的操作:
Intent callingcontent=getIntent()您可以运行类似于
String activityName=callingIntent.getSimpleClassName()
的操作来获取打开活动(活动A)的活动的类名B@Razgriz是的,但那对我有什么好处?我想有一个活动B的引用是由活动a打开的。我想控制的是活动B,比如说,从应用程序a中。编辑问题以使其更清晰,您是否检查了以下内容:?@RanyAlbegWein我刚刚检查过,问题是,我不希望a在B处引用a。我希望a在B处引用a。我认为它是存在的,因为第二个活动是启动器。我希望第一个活动通过第二个活动已经实现的函数来控制第二个活动。+1对于答案,至少现在我确认了引用该活动的想法是不可能的。@Lind:“我认为它是存在的,因为第二个活动是一个启动器”——类可能存在。在某处调用
startActivity()
以产生实例之前,该实例不会出现。现在,如果直接启动第二个活动,然后通过某种形式的导航用户到达第一个活动,那么第二个活动类的实例可能存在。但是,如果用户通过不同的启动器启动你的应用程序(比如,直接进入第一个活动),那么第二个活动的实例将不存在。我同意,我理解你的意思。但基本上我认为这是不可能的,我目前正在从应用程序A的主要活动的onCreate中调用启动器的startActivity()。@Lind:除了我已经写的以外,我没有更多的评论。一般来说,如果你想整合两件事,你需要愿意改变整合的两面。