Android ViewModel如何确保在屏幕旋转时必须绑定到相同的Activity或Fragment?
创始人
2024-08-19 04:30:03
0

在Android中,ViewModel是用于存储和管理与UI相关的数据的类。当屏幕旋转时,Activity或Fragment会重新创建,但ViewModel的实例必须保持不变。为了确保ViewModel在屏幕旋转时绑定到相同的Activity或Fragment,可以使用ViewModelProviders类提供的ViewModelProvider方式。

首先,在Activity或Fragment中创建一个ViewModelProvider实例:

ViewModelProvider viewModelProvider = new ViewModelProvider(this);

然后,在获取ViewModel时使用ViewModelProvider的get方法:

MyViewModel myViewModel = viewModelProvider.get(MyViewModel.class);

在上面的代码中,MyViewModel是自定义的ViewModel类。ViewModelProvider会检查是否已经存在与当前Activity或Fragment关联的ViewModel实例。如果已经存在,它将返回现有的实例;如果不存在,它将创建一个新的实例。

在Activity或Fragment中使用ViewModelProvider获取ViewModel的示例代码如下:

public class MyActivity extends AppCompatActivity {
    private MyViewModel myViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        ViewModelProvider viewModelProvider = new ViewModelProvider(this);
        myViewModel = viewModelProvider.get(MyViewModel.class);

        // 使用myViewModel进行操作
    }
}

通过这种方式,无论屏幕如何旋转,ViewModel实例都会保持不变,并且能够与相应的Activity或Fragment绑定。

需要注意的是,为了使ViewModelProvider能够正确地管理ViewModel的生命周期,Activity或Fragment必须继承自ViewModelStoreOwner接口。

相关内容

热门资讯

黑科技辅助!(wepoKe)软... 黑科技辅助!(wepoKe)软件透明挂,(wepoke)果然真的是有挂,玩家教程(有挂攻略);大神普...
黑科技代打(wpk游戏)外挂透... 黑科技代打(wpk游戏)外挂透视辅助下载(透视)2025新版总结(确实有挂)wpk游戏是一种具有地方...
黑科技辅助!(AAPOKER)... 黑科技辅助!(AAPOKER)透明挂辅助机制,(aApoker)本然有挂,曝光教程(有挂方法)是一款...
黑科技中牌率(微扑克)外挂透视... 黑科技中牌率(微扑克)外挂透视辅助技巧(透视)存在挂教程(原来真的有挂);1、首先打开微扑克最新版本...
黑科技讲解!(wPk)透视辅助... 黑科技讲解!(wPk)透视辅助挂,(WPK)好像是真的有挂,可靠教程(有挂辅助);玩家必备必赢加哟《...
黑科技辅助挂(wpK)外挂透视... 黑科技辅助挂(wpK)外挂透视辅助app(透视)力荐教程(总是有挂)该软件可以轻松地帮助玩家将wpK...
黑科技教程!(aa扑克)透明挂... 黑科技教程!(aa扑克)透明挂辅助插件,(aa poker)好像是有挂,2025新版教程(有挂技巧)...
黑科技私人局(wpK)外挂透视... 黑科技私人局(wpK)外挂透视辅助助手(透视)可靠教程(一直是有挂);1、点击下载安装,wpK插件透...
黑科技辅助!(WepoKe)软... 黑科技辅助!(WepoKe)软件透明挂,(WepOke)一向存在有挂,揭秘教程(有挂透视)准备好在W...
黑科技规律(微扑克插件)外挂透... 黑科技规律(微扑克插件)外挂透视辅助器(透视)细节方法(切实真的是有挂)1、微扑克插件机器人多个强度...