3

ユーザーからのリクエストで Android アプリが潜在的に大きなファイルをサーバーにアップロードできるようにする最善の方法は何ですか?

私は現在、通知の進行状況を定期的IntentServiceに呼び出しstartForegroundて更新する を使用していますが、サービスは約 1 分ほど後にシステムによってランダムに強制終了されます。

からの関連コードは次のonHandleIntentとおりです。

class BeamService extends IntentService("SSH Beam") {

  override def onHandleIntent(intent: Intent) = {

    ...

    // Start the notification
    startForeground(0,
      builder
      .setTicker("Starting transfer")
      .setContentTitle(filename)
      .setContentText("Starting transfer")
      .setOngoing(true).build
    )

    // Create the session and the monitor
    val session = server.createSession(auth)
    implicit val monitor = Monitor(filename, size)

    // Send the file
    try {
      session.connect
      session.cd(destination)
      session.put(filename, is)
    } catch {
      case e: Throwable => {
        notificationManager.notify(0,
          builder.setProgress(0, 0, false)
                 .setTicker("Transfer failed")
                 .setContentText(e.getMessage)
                 .build
        )
        e.printStackTrace
      }
    } finally {
      session.disconnect
      is.close
    }

    stopForeground(false)
  }
}
4

2 に答える 2