2017-01-05 11 views
4

C++でバックグラウンドタスクを持つアプリケーションを開発します。タスクは1分で動作しています。タスクは、IntentServiсeによって5分ごとに呼び出されます。アプリケーションがアンロードされた場合、私のIntentServiceは共有ライブラリをロードし、ネイティブタスクを正常に呼び出しました。Androidアプリケーションが停止したときにネイティブライブラリを保持する方法

しかし、アプリケーションが実行されているときにタスクが起動され、その後アプリケーションが停止すると、タスクも停止しました。

したがって、アプリケーションが停止した後にネイティブタスクを保持する方法が必要です。

アイデアがあれば、助けてください。

答えて

3

私は確信して、

ませんが、私はあなたが選択したサービスオプションは、最良の選択肢(意図サービス)はないと思う、私は間違っている場合と、サービスが停止し、短いタスクにし、ほかに向いていますアプリは破棄されます。

は、以下を参照してください。あなたの場合

Service vs IntentService

https://developer.android.com/guide/components/services.html

は、あなたがサービスはIPC(プロセス間通信)を使用してバインド可能かもしれない必要があります。またはRPC呼び出し。

私の意見では、あなたが基本的なサービスを必要とする:あなたはstopSelf()関数をしないようにしたいので

public class BasicService extends Service { 
    public BasicService() { 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     throw new UnsupportedOperationException("Not yet implemented"); 
    } 

    @Override 
    public void onCreate() { 
     Toast.makeText(this, "My service is created", Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onStart(Intent intent, int startId) { 
     // For time consuming an long tasks you can launch a new thread here... 
     Toast.makeText(this, " Starting service", Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onDestroy() { 
     Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show(); 

    } 
} 

最後に一つを、あなたは、使用して手動で停止する必要があります。あなたがサービスを開始したい場合は

stopService(new Intent(this, BasicService.class)); 

は最後に:

startService(new Intent(this, BasicService.class)); 

は、この情報がお役に立てば幸いです。

乾杯。

Unai。

+0

IntentServiceで単純なループを開始すると、アプリケーションを停止すると停止しませんでした。だから、私の問題は、アプリケーションが停止したときにネイティブライブラリをアンロードすることにあると思います。しかし、私はそれをどのように修正するのか分かりません。 – user7378684

+0

コードなし私はあなたの問題を見ることができません。あなたの質問にあなたのコードを投稿し整理できますか? – uelordi

関連する問題