Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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中进行回调。除使用StartActivityForResult外_Android - Fatal编程技术网

如何在Android中进行回调。除使用StartActivityForResult外

如何在Android中进行回调。除使用StartActivityForResult外,android,Android,假设我在backbackback中有10个活动。backbackback中的某个第10个活动(即活动a的实例)的更改将如何触发backbackbackback中的第2个活动(即活动a的实例)的更改 我无法使用StartActivityForResult的原因是更改可能发生在第n个活动中。我不能继续使用onActivityResult向后发送数据 此外,我不能使用静态数据,因为没有相同活动的实例 实际情况: 以twitter为例,我有我的追随者列表,其中有一个跟踪列表中用户的选项,我可以选择一个人

假设我在backbackback中有10个活动。backbackback中的某个第10个活动(即活动a的实例)的更改将如何触发backbackbackback中的第2个活动(即活动a的实例)的更改

我无法使用StartActivityForResult的原因是更改可能发生在第n个活动中。我不能继续使用onActivityResult向后发送数据

此外,我不能使用静态数据,因为没有相同活动的实例

实际情况:

以twitter为例,我有我的追随者列表,其中有一个跟踪列表中用户的选项,我可以选择一个人,转到他的追随者列表,在那里我会看到每个用户的跟踪选项,依此类推


那么,如果我在backbackback的第10个列表中跟踪某个用户,那么在包含同一个用户的第1个列表中如何反映这一点呢?我的意思是它必须从follow更改为follow。

如果您不想使用startActivityForResult,那么您需要创建每个活动的静态实例,以便从任何其他活动访问它。例如:-

公共类xyz扩展活动 {


}

您应该以某种方式将数据与活动分开存储。通常,这是通过sqlite数据库在中完成的。基本思想是,当用户执行您希望记录的操作时,您会以某种方式保存它。很可能是在数据库中。现在,数据已存储并可访问


下一步是如何在活动中显示更新的数据。这通常是在中完成的。在onResume中,您将执行一些操作,可以检索存储的数据,然后更新显示。startActivityForResult或多或少地用于其名称的含义。启动另一个活动,目的是被调用方向调用方提供一些数据。它不用于尝试通过活动堆栈发送数据和状态。

使用接口这更好option@DixitPatel. 你能说得更具体些吗。任何链接或代码示例都可以。谢谢。你为什么不在一些教程中查看观察者模式?@stefandbruijn你是说JAVA中的观察者接口和可观察类?是的,你可以用它们来实现它。我想它们也出现在Android中。这是一个很容易实现的模式,无需扩展这些类。我如何知道返回了哪个实例?此外,我无法确定哪个项目已更改,我将最终更改活动中重新创建的所有内容。我认为您应该创建一个静态ArrayList来维护同一活动的每个实例的引用。但为什么要更改数据库?我的意思是,既然数据通常会经常更改,为什么要将它们存储在数据库中呢。比如说点击跟随和取消跟随。此外,还会有大量数据,如我所说的10个用户的追随者名单。我只是试图提供一个关于如何做你想做的事情的非常一般的概述。由您决定如何存储和检索数据。然而,主要的一点是数据存储是独立的,与活动不同。这些活动用于操作和检索数据。它们不用于存储数据。
 private static xyz instance;

 public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       ................
       ................
       instance = this; 

 }

 public static xyz getInstance(){
       return instance;
 }