Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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
Java 在Android活动或配置文件之间传递对象?_Java_Android_Android Activity_Config - Fatal编程技术网

Java 在Android活动或配置文件之间传递对象?

Java 在Android活动或配置文件之间传递对象?,java,android,android-activity,config,Java,Android,Android Activity,Config,我正在尝试构建我的第一个android应用程序。我有多个活动,我正在使用处理程序和AssetFileDescriptor来播放声音文件 我的问题是,如何传递这些对象?我有一个活动通过处理程序启动计时器,另一个活动通过处理程序停止计时器。我应该在活动之间传递这些对象,还是有其他方法 我不习惯Java,但我想知道是否可以创建一个配置静态类或创建所有这些对象的东西,然后我的每个活动都可以从这个静态配置类访问这些对象。但是,这也有其自身的问题,因为为了调用方法getAssets(),我不能使用静态类(“

我正在尝试构建我的第一个android应用程序。我有多个活动,我正在使用处理程序和AssetFileDescriptor来播放声音文件

我的问题是,如何传递这些对象?我有一个活动通过处理程序启动计时器,另一个活动通过处理程序停止计时器。我应该在活动之间传递这些对象,还是有其他方法

我不习惯Java,但我想知道是否可以创建一个配置静态类或创建所有这些对象的东西,然后我的每个活动都可以从这个静态配置类访问这些对象。但是,这也有其自身的问题,因为为了调用方法getAssets(),我不能使用静态类(“不能对非静态方法进行静态引用”)


有什么想法吗?

这个最简单的解决方案是在应用程序类中存储对象,下面是关于这个主题的答案

另一个更高级的选择是使用。它是一个依赖注入框架,可以做很多很酷的事情,但是运行起来有点困难(至少我花了一些时间来工作)

Dagger允许定义如下所示的单例类:

@Singleton
public class MySingletonObject {

    @Inject
    MySingletonObject() {
        ...
    }
}
在应用程序中需要时:

public class SomeActivityOrFragment {

    @Inject MySingletonObject mySingletonObject;
    ...
    mySingletonObject.start();
}

public class SomeOtherActivityOrFragment {

    @Inject MySingletonObject mySingletonObject;

    ...
    mySingletonObject.stop();

}

如果状态需要在多个活动中保持不变,那么听起来您应该使用
服务来处理计时器。