ユーザーからのリクエストで 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)
}
}