HTTP を使用していくつかのファイルをサーバーにアップロードするために使用するサービスがあります。ファイルのアップロード中に進行状況インジケーターを表示したいと考えています。最初に、startForeground() メソッドを使用して、転送プロセス中に簡単な通知を表示しました。Google Play ストアからアプリをダウンロードするときに表示されるような進行状況インジケーターを使用したいと思います。http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomExpandedViewに示されているように、切り取った例に従いました
しかし、サービスに実装すると、RuntimeException が発生します。Service クラス内のコードは次のとおりです。
public int onStartCommand(Intent intent, int flags, int startId) {
Thread myThr = new Thread(new MyThreadClass());
myThr.start();
return START_STICKY;
}
public class SendSelectedNew extends Thread{
public void run(){
try{
if(fileSize()>0){
int fileSize = getSize();
for(int i = 0; i<fileSize;i++){
setNote(sizeOfTheList, i);
startForeground(1339, note);
mNotifyManager.notify(1339, note);
/*Code to upload files to my Server
*/
}
MyService mySer = MyService.this;
mySer.stopForeground(true);
mySer.stopSelf();
}
}catch(Exception e){
if(connection!=null){
connection.disconnect();
}
e.printStackTrace();
}
}
}
public void setNote(int fileSize, int progress){
note = new Notification.Builder(this).setContentText("Sending files").setSmallIcon(R.drawable.sendreceive).setContentTitle("MYApp").setProgress(fileSize, progress, false).build();
note.flags|= Notification.FLAG_NO_CLEAR;
}
私は何を間違っていますか?サービスから進行状況インジケーターを表示することはできませんか? アプリケーションの Logcat でログを取得していませんが、これは [デバッグ] ペインで取得したものです
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread.handleServiceArgs(ActivityThread$ServiceArgsData) line: 2782
ActivityThread.access$2000(ActivityThread, ActivityThread$ServiceArgsData) line: 152
ActivityThread$H.handleMessage(Message) line: 1385
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 137
ActivityThread.main(String[]) line: 5328
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 1102
ZygoteInit.main(String[]) line: 869
NativeStart.main(String[]) line: not available [native method]