小编use*_*915的帖子

Android从EditText隐藏软键盘,同时不丢失光标

我已经到了这一点,这让我在那里,但并不完全.我有一个拨号器Fragment,其中包含所有常用Button的输入数字,包括退格键,因此我不需要软键盘.我还想让用户能够粘贴文本(长按...默认情况下工作正常),以及编辑已输入的内容,因此我需要光标.

我找到的最简单的方法是确保软键盘不会弹出,如果用户点击内部EditText是设置inputType为null - 但这也会杀死光标.

那么,我如何声明我EditText应该启动哪些命令以使我的EditText字段永远不会显示软键盘,无论用户尝试什么,但仍然保留粘贴功能和光标?

我也尝试android:windowSoftInputMode="stateAlwaysHidden"过我的清单,但无济于事.

android android-softkeyboard android-edittext

24
推荐指数
2
解决办法
3万
查看次数

锁屏上的活动 - 解除它会恢复之前的活动

假设我的应用程序运行正常,显示 Activity A。然后用户锁定手机。A 尽职尽责地睡觉 ( onPause())。在屏幕关闭的某个时候,我需要向用户展示一些东西。因此,从我的后台代码(服务)中,我为 B 调用 startActivity,并传递以下标志:

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_NEW_TASK
Run Code Online (Sandbox Code Playgroud)

onCreate()B 中,我添加以下窗口标志

FLAG_SHOW_WHEN_LOCKED 
FLAG_TURN_SCREEN_ON 
FLAG_DISMISS_KEYGUARD 
Run Code Online (Sandbox Code Playgroud)

一切正常 - B 现在出现在键盘锁的顶部。

在稍后的某个时间点,我希望解雇 B,因此从 BI call 中dismiss(),它按预期工作。这就是出错的地方:我现在没有返回锁定屏幕,而是在锁定屏幕上运行 A。

当我解雇 B 时,如何阻止操作系统恢复 A?

谢谢。

android lockscreen keyguard android-activity

5
推荐指数
1
解决办法
1271
查看次数

删除与 EF Core 一起使用的数据库

我需要以编程方式删除 EF 核心数据库。没问题吧?获取上下文,调用 ctx.Database.EnsureDeleted(),一切就绪。

除了......当数据库正在使用时,您正在使用连接池(这样做是有充分理由的),您可能会遇到无法删除数据库的情况。

回到 EF6 时代,我有一个自定义 DB 初始值设定项,它按如下方式覆盖 InitializeDatabase(将 DB 设置为单用户模式,以便其他连接不会干扰)

public override void InitializeDatabase(AudmDatabaseContext context)
    {
        context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction
           , string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", context.Database.Connection.Database));
        base.InitializeDatabase(context);
    }
Run Code Online (Sandbox Code Playgroud)

现在我想知道..你如何使用 EF 核心 2.1 做到这一点(或其他让我获得相同效果的东西)?

drop-database entity-framework-core .net-core

5
推荐指数
0
解决办法
140
查看次数

由 appsettings.json 标识的 Kestrel Https 证书仅在以管理员模式运行时发现

我正在使用 appsettings.json 在 .netcore3.1 应用程序中配置 Kestrel。这是 appsettings.json 中的相关部分

    "Kestrel": {
    "Certificates": {
      "Default": {
        "Subject": "certificate name",
        "Store": "MY",
        "Location": "LocalMachine",
        "AllowInvalid": true
      }
    }
  },
  "AllowedHosts": "*",
  "Urls": "http://*:5010;https://*:5011"
Run Code Online (Sandbox Code Playgroud)

如果我启动应用程序,它会出现在两个端口上。但是,通过 HTTPS 访问它会将此异常转储到我的应用程序的控制台

Microsoft.AspNetCore.Server.Kestrel[0] 处理 0HLT41KHBJ13T 时未处理的异常。System.ComponentModel.Win32Exception (0x8009030D): System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) 无法识别提供给包的凭据

但是,如果我以管理权限启动应用程序,它就可以工作。因此,证书很好(它具有所需的私钥),但仍然无法正常工作。只是为了好玩,我将证书导入到 LocalUser 存储中,即使没有管理员权限,应用程序也绝对可以访问该存储,但没有任何乐趣。

如果没有以管理权限运行,有什么想法会导致此失败?您可以看到证书位于证书存储中,而不是文件系统中,这排除了文件权限问题。

https kestrel-http-server asp.net-core

5
推荐指数
1
解决办法
1564
查看次数