Giter Site home page Giter Site logo

rockyqu / mvpframes Goto Github PK

View Code? Open in Web Editor NEW
103.0 6.0 15.0 1.28 MB

整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX

Home Page: https://github.com/RockyQu/MVPFrames

License: Apache License 2.0

Java 97.60% Prolog 0.01% Kotlin 2.39%
mvp retrofit2 dagger2 android-library mvp-android model-view-presenter mvp-library butterknife mvparms gson

mvpframes's People

Contributors

ktdynamic avatar rockyqu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mvpframes's Issues

数据库

数据库为什么不用目前流行的greenDao,这个数据库不是很会用

工程使用gradle:3.3.2编译报错

API 'variantOutput.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
It will be removed at the end of 2019.

ParameterInterceptor 的第63行报错

接口形式

@POST("server")
@Streaming
Call<ResponseEntity<CsResponse>> startup(@Body CsRequest request);

然后报转换错误
java.lang.ClassCastException: okhttp3.RequestBody$1 cannot be cast to okhttp3.FormBody
建议添加不同类型的兼容。

关于下载模块的建议

1.首先感谢作者的辛苦付出,star和watch已点
2.希望下载模块能提供取消功能
3.同时本人自己也写了个取消功能,希望楼主不吝赐教(本人初级阶段)。

缓存类:通过id缓存DownloadCore

public class DownloadCoreCache {

private static Map<String,DownloadCore> downloadCoreMap = new HashMap<>();

private static DownloadCoreCache downloadCoreCache;

private DownloadCoreCache(){}

public static DownloadCoreCache getInstall(){
    if(downloadCoreCache == null){
        downloadCoreCache = new DownloadCoreCache();
    }
    return downloadCoreCache;
}

/***
 * @param id : 任务id
 * @param downloadCore
 */
public void put(String id,DownloadCore downloadCore){
    synchronized (downloadCoreMap){
        downloadCoreMap.put(id,downloadCore);
    }
}

public DownloadCore get(String id){
    synchronized (downloadCoreMap){
        return downloadCoreMap.get(id);
    }
}

public void remove(String id){
    synchronized (downloadCoreMap){
        downloadCoreMap.remove(id);
    }
}

public void clearAll(){
    synchronized (downloadCoreMap){
        downloadCoreMap.clear();
    }
}

}

在DownloaderHelper中缓存DownloadCore并提供取消接口

public static CoreExecute init(Application application, DownloadRequest request, DownloadListener listener) {
DownloadCore downloadCore = new DownloadCore(application, request, listener);
DownloadCoreCache.getInstall().put(request.getId(),downloadCore);
return downloadCore;
}

public static void cancle(String id){
    DownloadCoreCache.getInstall().get(id).cancle();
}

在DownloadCore中提供cancle()接口

@OverRide

public void cancle() {
    isCancle = true;
}

通过isCancle来控制循环,达到取消目的

while ((len = is.read(buf)) != -1) {

                    fos.write(buf, 0, len);
                    sum += len;

                    // Downloading
                    if (downloadListener != null) {
                        downloadListener.onProgress(sum, total);
                    }
                    if(isCancle){
                        break;
                    }
                }

关于为什么不用Call call = okHttpClient.newCall(request); call.cancel();来取消任务

因为之前在网上看到资料说,当call执行enqueue()方法后是无法取消的

如有冒犯之处,还请海涵,谢谢

Room 数据库的问题

@database(entities = {User.class, Bus.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

public abstract UserDao userDao();

public abstract BusDao busDao();

public static AppDatabase get(AppComponent component) {
    return (AppDatabase) component.dbManager().database();
}

}

@entity(tableName = "Bus")
public class Bus {
@PrimaryKey(autoGenerate = true)
private int ids;
@SerializedName("name")
String name;

public int getIds() {
    return ids;
}

public void setIds(int ids) {
    this.ids = ids;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}

@entity(tableName = "User")
public class User {

@PrimaryKey(autoGenerate = true)
private int id;

// ID
@SerializedName("userId")
private String userId;

// 名字
@ColumnInfo(name = "name")
private String name;

// 排除这个字段,不存入数据库
@Ignore
Bitmap bitmap;

public User() {

}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Bitmap getBitmap() {
    return bitmap;
}

public void setBitmap(Bitmap bitmap) {
    this.bitmap = bitmap;
}

}
我这样操作数据库,要抛出Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.这个异常。难道这个框架只能初始化一个类在AppDatabase 里面吗?可以qq联系你吗沟通一下这个心数据库的用法,我网上查了很多资料,都没发现什么原因导致的,有的说是数据库更新。感觉不是那么回事啊

数据库导入问题 谢谢

没有看到作者在哪里通过AppComponent注入了数据库啊?只看到了一个DB.Module的提供的类 请指教一下是在哪里注入的?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.