Code Monkey home page Code Monkey logo

wanandroid's Introduction

Hi there 👋

Anurag's github stats

wanandroid's People

Contributors

lulululbj avatar ppjuns 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wanandroid's Issues

线程堆栈大小调整

大佬,看到你的公众号文章OOM优化,评论中有提到线程优化的两个方案:

  1. 使用xhook减小pthread_attr_setstacksize,设置线程堆栈缩小一半
  2. 监控应用线程数和堆栈信息。在OOM时上报吗?
    能帮帮详细说说吗?特别是xhook修改线程大小,找到了xhook的demo,不知道怎么写。有这块的代码就最好了。

就Retrofit协程有些问题请教

在用协程替换RxJava的情况下,协程有相关api能做到例如RxJava zip处理多个网络请求、retryWhen处理错误重试吗?

[Build Error] Unresolved reference: liveData

Android Studio : 3.4.1
Gradle: com.android.tools.build:gradle:3.4.2
Kotlin: ext.kotlin_version = '1.3.31'
Error Message:
luyao/wanandroid/ui/home/HomeViewModel.kt
(23, 45): Unresolved reference: liveData
(24, 21): Suspend function 'withContext' should be called only from a coroutine or another suspend function
(25, 9): Unresolved reference: emit

关于把网络请求丢在Repository层

兄弟你好,拜读了代码,有一个疑问
把网络请求丢在Repository层该怎么取消网络请求呢
看您的代码是在Repository处理网络请求,VM把请求数据转化为LiveData
类似于之前call.cancel()或者Rxjava中取消观察这种

viewmodel中的写法

为什么要两个livedata 用一个然后private set 是一样的效果吗

 private val _uiState = MutableLiveData<ArticleUiModel>()
    val uiState: LiveData<ArticleUiModel>
        get() = _uiState

Json转数据类

您好,Json字符串转数据类有插件吗?类似GsonFormat

内存泄漏

BrowserNormalActivity->WebSettingsExtension.mContext

无法run起来

报错信息如下:
2019-12-30 14:33:59.604 22417-22417/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: luyao.wanandroid, PID: 22417
java.lang.RuntimeException: Unable to start activity ComponentInfo{luyao.wanandroid/luyao.wanandroid.ui.NavigationActivity}: android.view.InflateException: Binary XML file line #8 in luyao.wanandroid:layout/activity_navigation: Binary XML file line #8 in luyao.wanandroid:layout/activity_navigation: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)

@lulululbj @gdmec07120731

关于 Retrofit 2.6.0 对协程的支持

看了下代码一直没看明白怎么把 Retrofit 返回的 Call 转换为具体的实体类,后来查了下是 Retrofit 2.6.0 添加了对协程的支持,可以直接返回了,可以在 README 更新说明下。

结束loading状态可以这样加个finishBlock么

fun executeResponse(
response: MyResponse, successBlock: () -> Unit,
errorBlock: () -> Unit
, finishBlock: () -> Unit
) {
if (response.code == -1) {
errorBlock()
} else {
successBlock()
}
finishBlock()
}

找不到下面的4个文件。

文件找不到

import luyao.dependencies.Deps
import luyao.dependencies.Versions

有两个问题,希望大佬指教!

SquareViewModel:

data class SquareUiModel(
val showLoading: Boolean,
val showError: String?,
val showSuccess: ArticleList?,
val showEnd: Boolean, // 加载更多
val isRefresh: Boolean, // 刷新
val needLogin: Boolean? = null
)

1.每个viewmodel 中有一个model,这种model 有没有办法共用?
2.还有个问题请教大佬 如果是DialogFragment 怎么用viewmodel ,在假如 我继承BaseVMFragment 我没有viewmodel 咋处理啊?

异常处理

我在使用中 发现 无网络情况下会奔溃 ,搜了一下
建议使用 runCatching{
}

包裹请求代码
通过 result 返回异常 做处理

关于看了代码第一点浅显理解

1.首页 Tab+ViewPager+Fragment
FragmentPagerAdapter(supportFragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
这段代码的原意是让不可见的Fragment执行到onResume 之前 ,但是我发现BaseFragment的初始化操作全部都放在了onCreateView中 这样使得懒加载失效,那么这些初始化操作是否应该放在onResume中进行操作,使用变量控制判断是否初始化已完成

异常处理的问题

大佬,请教个问题。。

suspend fun login(@Field("username") userName: String, @Field("password") passWord: String): WanResponse<User>

这么写的话,我想根据401,403的错误码进行特定提示或者后续操作,该怎么捕捉这种http异常呢

是在safeApiCall的try,catch中,if(e is HttpException)这样吗。

这个项目的混淆文件有吗?

看了一下项目,对比其他的mvvm+jetpack+协程,感觉这个项目是写的最好,想把大神的这套框架用到新的项目中,这个混淆文件有吗?

错误返回的问题

image
我看到在LoginRepository中的错误信息是在前台写死的,如果我想返回后台返回的错误日志应该怎么处理呢?

retrofit2相关问题

suspend fun login(@field("username") userName: String, @field("password") passWord: String): WanResponse ,我看你这里都是返回WanResponse,为什么我模仿写的时候retrofit一直报错Unable to create call adapter for luyao.wanandroid.model.bean.WanResponse<com.lin.wyt.coroutine.bean.NewGrade>

buildSrc 一直找不到依赖

buildSrc 一直找不到依赖

Could not get unknown property 'Versions' for extension 'android' of type com.android.build.gradle.internal.dsl.BaseAppModuleExtension.

各种重启,清缓存都没用 ,androidstudio4.0 gradle 6.1.1 kotlin1.3.72

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.