Tag: android

代码审查最好的方法使用SharedPreferences解决MemoryLeak

我尝试解决共享偏好使用中的内存泄漏,我整天尝试这样做,但仍然混淆,我的目标是可能调用pref在任何我想要的。 在这里我的代码。 class Preferences (private val context: Context) { private val sharedPreferences: SharedPreferences = context.getSharedPreferences(context.packageName+”_pref”, Context.MODE_PRIVATE) private val editor: SharedPreferences.Editor companion object { private val KEY_USER = “user” private val KEY_EMAIL = “email” } init { editor = sharedPreferences.edit() } private fun isKeyExist(Key: String): Boolean = sharedPreferences.contains(Key) private fun putString(Key: String, value: String) { editor.putString(Key, […]

如何禁用从/到EditText复制/粘贴

在我的应用程序中,有一个注册屏幕,我不希望用户能够将文本复制/粘贴到EditText字段中。 我已经在每个EditText上设置了onLongClickListener ,以便显示复制/粘贴/输入方法和其他选项的上下文菜单不显示。 所以用户将无法复制/粘贴到编辑字段。 OnLongClickListener mOnLongClickListener = new OnLongClickListener() { @Override public boolean onLongClick(View v) { // prevent context menu from being popped up, so that user // cannot copy/paste from/into any EditText fields. return true; } }; 但是,如果用户启用了Android默认键盘以外的其他第三方键盘,则可能会出现问题,该键盘可能有一个复制/粘贴按钮或可能显示相同的上下文菜单。 那么我如何禁用复制/粘贴在这种情况下? 请让我知道是否有其他方法来复制/粘贴。 (并可能如何禁用它们) 任何帮助,将不胜感激。

如何在Kotlin中实现一个java SAM接口?

在Java中,可以像这样编写代码: model.getObservableProduct().observe(this, new Observer() { @Override public void onChanged(@Nullable ProductEntity productEntity) { model.setProduct(productEntity); } }); 然而,试图在Kotlin中覆盖本地函数的结果是: 问题:可以重写Kotlin中的本地函数吗?

如何在Honeycomb上以编程方式关闭ActionMode菜单?

在我的应用程序中有一个ListFragment,列表中的每个项目都包含一个checkbox。 只要用户点击其中一个checkbox,应用程序就会启动一个ActionMode上下文菜单。 但是我希望应用程序在单击另一个组件时关闭ActionMode菜单。 我尝试了Fragment#closeContextMenu()但没有成功。 任何想法我怎么能做到这一点?

检查网络和互联网连接 – Android

我想知道如果下面的方法检查,我都连接到网络,并可以实际连接到互联网以及。 不只是连接到不会让我访问互联网的网络? public boolean isNetworkAvailable() { ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); boolean isAvailable = false; if (networkInfo != null && networkInfo.isConnected()) { isAvailable = true; } return isAvailable; } 我认为,但是我不是100%肯定的。 谢谢

没有提供足够的数据给HAL,预期的位置

我在Android Studio中遇到了这个错误。 我只是想按下按钮时打印文本。 我得到下面的错误,每当我按下按钮时出现。 如果我取消注释意图,它也可以很好地工作,但更多的代码我有更多的错误更改。 我不确定这是真正的错误。 我这样说是因为我有一个完整的应用程序(不是这个),它使用翻新和github API来搜索回购。 这个按钮是搜索的纽带。 如果我拼写一个单词的应用程序完美的作品。 我终于到了这个简化的应用程序,试图find根本原因。 请帮忙。 1。 10-17 15:33:56.569 1404-1431/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 2045606 , only wrote 1793520 这是代码 import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.EditText class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editText […]

坚持取向变化的对话视野

在我目前的Android项目中,我有一个对话框,从Web服务中检索对象列表,并在列表中显示这些对象。 它有一个问题,但。 web服务(我的控制范围之外)并不是最快的,所以这个过程需要一段时间,用户通常会在这个过程正在进行时改变设备的方向。 现在的方向更改导致原始webservice调用被取消,并创建一个新的,但这不是我应该如何做我知道。 我希望这个对话框能够在方向改变发生时继续从web服务加载,但是我不知道如何做到这一点。 如何挂钩正在进行的调用并在视图(对话框)中显示此状态? 任何建议表示赞赏。 我玩过Android架构组件和kotlins密封类,将视图状态保存在视图所观察的livedata对象中,但是没有find我喜欢的解决方案。 我相信很多开发者使用RxJava来解决这类问题。 这是我唯一的选择吗? 顺便说一句。 目前我在我的项目中使用MVP架构。 编辑 这是我取消工作的地方 – 如果监听器为空,取消(我正在使用kotlin协程): override fun getWorklist() { job = onWorkerThread { val result = repository.getResult().awaitResult() onMainThread { when (result) { is Result.Ok -> listener?.onResult(result.getOrDefault(emptyList())) 😕 job.cancel() // Any HTTP error is Result.Error -> listener?.onHttpError(result.exception) 😕 job.cancel() // Exception while request invocation is […]

关闭应用程序并从最近的应用程序/

我知道这个问题很常见,并且在Stack Overflow上被问了很多次,但是在浏览了近四页的搜索引擎结果以及近乎Stack Overflow这个问题的20个问题之后,我发现没有一个问题得到解决或答案。 我想要的是: 我想在最近的应用程序列表中显示我的应用程序,当它运行,但是当我关闭应用程序,然后我的过程应该被杀死,应用程序应该从最近的应用程序列表中删除。 我发现一些答案: use System.exit(0); //doesn’t clear app from recents OR use android.os.Process.killProcess(android.os.Process.myPid()); //doesn’t clear app from recents OR use finish() or this.finish() or Activity.finish();// doesn’t clear app from recents 我在每个答案中看到的一个常见建议是在清单中添加下面的代码: android:excludeFromRecents //I think this is wrong approach. 因为当用户按下主页按钮时,当我的应用程序正在运行时添加此时,用户无法看到我的应用程序在最近的应用程序列表 还有很多其他的建议,但是他们都没有从近期的应用程序列表中关闭应用程序和清除应用程序。 此外,如果你进入Settings>Apps>yourApp>your Application看到它仍然要求“强制停止”意味着应用程序正在运行!

Kotlin访问Java类

为什么在Kotlin中,你需要访问它们使用的对象的Java类 MyActivity::class.java 我被告知与Kotlin与JS的互操作性…有什么想法?

无法使用kotlinx.serialization将Json解析为数据类

在Android项目中,我试图使用kotlinx.serialization和Retrofit从远程端点解析Json响应。 我在使用Jake Warthon的https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter来设置转换器时设置改造实例 Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(stringBased(contentType, ::parse, ::stringify)) .addCallAdapterFactory(CoroutineCallAdapterFactory()) .build() 我有以下模型注解@Serializable,我想用来解析Json响应 import kotlinx.serialization.Serializable @Serializable data class Response(val groups: List<GroupsResponse>) 请注意,Response和嵌套的GroupsResponse都定义了一个通用types。 我一直在浏览文档,但是我一直无法理解generics和kotlinx.serialization是如何一起玩的,尽管它提到它支持generics,并且您应该使用生成的序列化方法访问那些模型的序列化程序 。 我已经建立了项目使用正确的插件按照kotlinx.serialization和Jake的库的文档,但问题是,该项目甚至不编译,因为我正在得到以下types的错误,当构建过程执行kaptDebugKotlin gradle任务 e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/Response.java:75: error: non-static type variable T cannot be referenced from a static context public static final class $serializer implements kotlinx.serialization.KSerializer<com.edreams.android.workshops.kotlin.data.venues.remote.response.Response> { e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/GroupsResponse.java:109: error: cannot find symbol kotlinx.serialization.KSerializer typeSerial0) { […]