- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试按照 android 蓝图指南将 MVP 模式实现到我的项目中。目前,我将用户(实体数据)保存在我的 Presenter 中,我真的不喜欢这样做,因为在每次配置更改时,presenter 都会从数据库中获取用户。
我的第一个问题是:
我也知道 android 架构组件,尤其是 ViewModel,但是,我想保留 MVP 模式而不是 MVVM。
我的第二个问题是:
我已经被这个问题困扰了很长一段时间,很想最终解决它。
chúc mừng
1 Câu trả lời
Should I keep my data in the Repository or should I keep it within the presenter and persist it there somehow?
当我开始使用 MVP 时,你有一个有趣的问题。这是我的 2 美分:
关于您提到的两个选项的讨论一直在继续。我个人更喜欢存储库模式。它比 IMO 更干净,并且处理诸如当请求已经在飞行中时屏幕旋转等情况变得更容易。此外,每次设备旋转时,您都不需要从数据库中获取。如果您认为这很昂贵,也许您可以在 db 之前创建一个级别的缓存。有一篇非常有趣和详细的文章:Presenters are not for persistingvượt qua Mike Nakhimovich ,在纽约时报担任 Android 开发人员期间,他开发了一个名为 Store 的库这有助于实现相同的目标。来自文章:
I'd propose using data stores which abstract away data loading. Rather than the presenter needing to cache the data, we can leverage the Repository pattern and create Data Providers/Stores that can get data from the network and cache it for when we need it. For one thing, this approach makes it easier to persist your data. Another advantage is that we have a single source of truth for our data. Finally, we can eliminate things like Interactors and just have your Presenter subscribe to your Stores whenever they need something for a view.
Tôi hy vọng nó có ích.
关于Android MVP 持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52066288/
Gần đây tôi đã thêm một số tệp .gif vào /drawable để có thể sử dụng chúng với các nút. Cách này hoạt động tốt (không có lỗi). Bây giờ khi tôi xây dựng lại/chạy ứng dụng của mình, tôi nhận được lỗi sau: Lỗi: Gradle: Đang thực thi
Có phương pháp nào trong Android để trả về đường dẫn dữ liệu lưu trữ nội bộ không? Tôi có 2 điện thoại thông minh Android (Samsung S2 và S7 Edge) mà tôi đã cài đặt một ứng dụng. Tôi muốn sử dụng sqlit nằm trong đường dẫn này
Câu hỏi này đã có câu trả lời tại đây: Sự khác biệt giữa "?android:" và "@android:" trong tệp xml bố cục Android là gì
Tôi chỉ muốn biết sự khác biệt thực sự giữa điện thoại Android phát triển, điện thoại Android gốc và điện thoại Android gốc. Chúng tôi không thể mua bộ công cụ phát triển từ cửa hàng thực tế hoặc bất kỳ nơi nào khác ngoại trừ Android Marketplace.
Tôi đang cố gắng đưa dự án này lên chuẩn mực kể từ khi Gradle được cập nhật. Đây là một dự án nhóm và sử dụng plugin android-apt. Tôi đã thực hiện các thay đổi cú pháp cần thiết (bộ xử lý biên dịch->thực hiện và apt->chú thích), nhưng trình biên dịch vẫn báo với tôi là có
Tôi mới làm quen với Android và Kotlin nên xin lỗi vì một vấn đề rất đơn giản cần giải quyết! Tôi đã tạo một ứng dụng cơ bản bằng cách sử dụng Navigation Architecture Component, sử dụng thanh điều hướng ở dưới cùng và ba tùy chọn điều hướng. Mỗi tùy chọn điều hướng sẽ trỏ tới một đoạn chuyên dụng.
Hiện tại tôi đang sử dụng SDK chính thức của Facebook dành cho Android. Tôi đang sử dụng ứng dụng mẫu nâng cao nhưng tôi không biết cách để nó lấy tường ứng dụng/luồng/trạng thái thay vì người dùng đã đăng nhập. Liệu điều này có thể thực hiện được không? Trong tình huống đó
Tôi gặp vấn đề khi tải tệp xuống, tôi có thể tải tệp xuống trong trình giả lập nhưng lại không tải được trên điện thoại của tôi. Tôi đã xác định quyền truy cập Internet và ghi vào thẻ SD. Tôi có một tệp doc trên máy chủ, nếu người dùng nhấp vào tải xuống. Nó tải tập tin xuống. Điều này hoạt động tốt trong trình mô phỏng nhưng
Câu hỏi này đã có câu trả lời ở đây: Sự khác biệt giữa gravity và layout_gravity trong Android là gì? (22 câu trả lời) Đã đóng 9
Có ai có thể cho tôi biết bộ nhớ đệm Android và bộ nhớ đệm ứng dụng là gì không vì khi chúng ta nói về ứng dụng dọn bộ nhớ đệm thì nó làm gì, khái niệm dọn bộ nhớ đệm là để dọn bộ nhớ đệm ứng dụng hay giống như quản lý bộ nhớ lưu trữ chính, RAM, bộ nhớ đệm khác nhau và theo như tôi biết thì bộ nhớ đệm
Giả sử các ứng dụng Foo và Eggs nằm trên cùng một thiết bị Android. Bất kỳ ứng dụng nào cũng có thể nhận được danh sách tất cả các ứng dụng trên thiết bị. Liệu một ứng dụng có thể biết được ứng dụng khác đã chạy hay chưa và chạy trong bao lâu không? 1 Câu trả lời
Tôi hơi bối rối, tôi chỉ thấy ví dụ từ Android sang PC hoặc ngược lại. Tôi cần tạo một ứng dụng Android để kết nối hai điện thoại (Android) để trò chuyện video. Tôi đang nghĩ, tôi biết
Được sử dụng để khóa màn hình theo chương trình bằng Android. Tôi có một số ý tưởng hay từ những câu hỏi trước đây về vấn đề này trên Stackoverflow và tôi đã làm khá tốt, nhưng khi tôi chạy đoạn mã đó, không có ngoại lệ hay lỗi nào cả. Ngoài ra, màn hình không bị khóa. Xin hãy sử dụng đoạn văn này
Tài liệu nói rằng: android:layout_alignParentStart Nếu đúng, làm cho cạnh bắt đầu của chế độ xem này khớp với cạnh bắt đầu
Tôi không biết sự khác biệt giữa hai tính chất và chiều cao này. Lấy TextView làm ví dụ, nếu tôi đặt layout_width thành wrap_content và đặt chiều rộng thành 50 dip, điều gì sẽ xảy ra? 1 Câu trả lời
Hai tính chất này liên quan với nhau như thế nào? Nếu tôi có android:noHistory="true", thì việc có android:finishOnTaskLaunch="true" có ý nghĩa gì không? Câu trả lời tốt nhất giả định rằng bạn có
Tôi mới làm quen với Android và đang cố gắng hiểu mã XML sau: Khi xem tài liệu trên developer.android.com, bạn sẽ thấy "starStyle" là hằng số trong R.attr, public static final
Trong đoạn mã sau, tại sao giao diện của nút radio lại thay đổi khi tôi đặt android:layout_width="fill_parent" và android:width="fill_parent" Tôi đang nói
Thật khó để biết nên hỏi gì ở đây. Câu hỏi này mơ hồ, không đầy đủ, quá rộng hoặc mang tính tu từ và không thể trả lời hợp lý theo hình thức hiện tại. Để được trợ giúp làm rõ vấn đề này để có thể mở lại, hãy truy cập trung tâm trợ giúp. Đóng 9
Giả sử tôi có một hàm fun myFunction(name:String, email:String){}, khi tôi gọi hàm này myFunction('Ali', 'ali@test.com ') thì thế nào
Tôi là một lập trình viên xuất sắc, rất giỏi!