小编Jig*_*gar的帖子

当互联网关闭然后应用程序在 NetworkCallback 内启动时无法获得回调

根据官方文档,由于 getActiveNetworkInfo 现在在 Android 中已被弃用,因此我使用下面的实现来获取有关互联网连接的回调。

private val connectivityManager: ConnectivityManager by lazy {
   getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
}

private val builder: NetworkRequest.Builder by lazy {
   NetworkRequest.Builder()
}

private val networkCallback: NetworkCallback by lazy {
   object : NetworkCallback() {
      override fun onAvailable(network: Network?) {
          println("Connection is online")
      }

      override fun onLost(network: Network?) {
          println("Connection is offline")
      }
   }
}

override fun onResume() {
   super.onResume()
   connectivityManager.registerNetworkCallback(builder.build(), networkCallback)
}

override fun onPause() {
   super.onPause()
   connectivityManager.unregisterNetworkCallback(networkCallback)
}
Run Code Online (Sandbox Code Playgroud)

当连接在线时注册此回调时,它可以正常工作,但当互联网关闭然后我们注册回调时,它不能正常工作。为了测试这种情况,我关闭了我的应用程序。然后保持互联网连接关闭,然后打开应用程序。

我们有什么办法知道应用程序正在打开吗?如果有的话,请帮忙分享一下。谢谢。

android android-connectivitymanager

8
推荐指数
1
解决办法
1340
查看次数

在自定义 Painter Flutter 的路径中将终点与起点连接时如何避免锐边/角度?

附加图像是当前输出,问题:左上角,可以看到锐利的边缘/角度。使用自定义画家绘制形状时,在将最后一个点与第一个点连接时删除锐边/角度的问题。

我正在尝试使用 CustomPainter 创建自定义形状。我使用一些点创建了路径。对于绘制路径,我使用贝塞尔曲线。我的代码如下。但是当最后一个点连接到第一个点时,它会产生锐角。我怎样才能避免它?

// preparing path points for shape.
for (int i = 0; i < steps; i++) {
  borderPoints.add(BorderPoint(xPoint, yPoint, radian, randomRadius, MovementDirection.INWARD));
}
borderPoints.add(borderPoints[0]);

// here, we are creating path for our shape.
jellyPath.moveTo(borderPoints[0].dx, borderPoints[0].dy);
int i = 1;

for (i = 1; i < borderPoints.length - 2; i++) {
  var xc = (borderPoints[i].dx + borderPoints[i + 1].dx) / 2;
  var yc = (borderPoints[i].dy + borderPoints[i + 1].dy) / 2;
  jellyPath.quadraticBezierTo(
      borderPoints[i].dx, borderPoints[i].dy, xc, yc);
}
jellyPath.quadraticBezierTo(borderPoints[i].dx, …
Run Code Online (Sandbox Code Playgroud)

bezier flutter

3
推荐指数
1
解决办法
254
查看次数

MediaPlayer - setAudioAttributes 无法正常工作

我正在尝试创建警报,一切正常,但即使我使用流类型也始终是媒体STREAM_ALARM,因为setStreamType已弃用,我正在使用,setAudioAttributes但它似乎不起作用。这是我的代码:

class AlarmRingtoneManager(val context: Context) {

    private lateinit var mediaPlayer: MediaPlayer

    fun start() {
        mediaPlayer = MediaPlayer.create(context,  RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM))
           .apply {
              setAudioAttributes(AudioAttributes.Builder()
                .setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
                .setLegacyStreamType(AudioManager.STREAM_ALARM)
                .setUsage(AudioAttributes.USAGE_ALARM)
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .build())
              isLooping = true
              start()
           }
    }

    fun stop() {
      mediaPlayer.stop()
    }
}
Run Code Online (Sandbox Code Playgroud)

java android android-alarms android-mediaplayer kotlin

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