小编Ahm*_*maz的帖子

重新创建 Activity 时出现生命周期异常

我正在尝试在更改应用程序中的语言设置后重新创建片段和活动,但getActivity().recreate();部分内容出现了我无法理解原因的错误。错误是:

E/ActivityInjector: get life cycle exception
Run Code Online (Sandbox Code Playgroud)

当我尝试重新创建活动时发生错误。这是我的代码SettingsActivity.java

public class SettingsActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings_activity);
        getSupportFragmentManager().beginTransaction().replace(R.id.settings, new SettingsFragment()).commit();
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setDisplayHomeAsUpEnabled(true);
        }

    }

    public static class SettingsFragment extends PreferenceFragmentCompat {
        ListPreference languages;

        @Override
        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
            setPreferencesFromResource(R.xml.root_preferences, rootKey);

        }

        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            languages = getPreferenceManager().findPreference("language");
            languages.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                @Override …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-activity

13
推荐指数
1
解决办法
4768
查看次数

在 docker-compose 文件中指定 JVM 选项

目前我正在尝试将 JVM 选项传递给我的 docker-compose.yml 文件。“环境:”中的 JVM_OPTS 部分似乎不起作用。还有另一种方法可以将 JVM 选项传递给 docker-compose.yml 文件吗?

而且我的 DockerFile 映像来自 openjdk:8-jre-alpine。

我的 docker-compose.yml 文件是这样的。

version: '3.1'
services:
  service:
    image: registry.gitlab.com/project/service/${BRANCH}:${TAG}
    container_name: serviceApp
    env_file: docker-compose.env
    environment:
      - JVM_OPTS=-XX:NativeMemoryTracking=summary
                 -XX:+StartAttachListener
                 -XX:+UseSerialGC
                 -Xss512k
                 -Dcom.sun.management.jmxremote.rmi.port=8088
                 -Dcom.sun.management.jmxremote=true
                 -Dcom.sun.management.jmxremote.port=8088
                 -Dcom.sun.management.jmxremote.ssl=false
                 -Dcom.sun.management.jmxremote.authenticate=false
                 -Dcom.sun.management.jmxremote.local.only=false
                 -Djava.rmi.server.hostname=localhost
    ports:
      - 8088:8088
    networks:
      - services
    working_dir: /opt/app
    command: ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/service.jar""]

networks:
  services:
    external:
      name: services
Run Code Online (Sandbox Code Playgroud)

如果您询问这些参数,我正在尝试将 VisualVM 连接到本地 docker 容器。

java jvm docker dockerfile docker-compose

8
推荐指数
1
解决办法
1万
查看次数

在 Spring 中从 MongoDB 中删除索引

我正在尝试从之前放置的数据库中删除索引。

@Indexed(unique = true)
private String name;
Run Code Online (Sandbox Code Playgroud)

删除 后@Indexed(unique = true),我也需要将其从 中删除MongoDB。我需要在春季内完成。@PostConstruct我可以用什么东西来做吗?

spring mongodb spring-data-mongodb spring-boot

2
推荐指数
2
解决办法
3882
查看次数