Activity 1 --send data--> Service1
^
|
Open app--------------------
^
|
Activity 2------------------
を次のように私はonStartCommand()
に復帰して実行しているバックグラウンドサービスであるアクティビティ1は、サービス1 1.サービスにデータを送信することを意味しSTART_STICKY
ある図を持っています。現在、私はputExtra()
関数を使用してデータを交換しています。そして、私はgetExtraデータの手順以下のようにするサービスで:Service 1
String data=null;
if(intent.hasExtra("data")){
Bundle bundle = intent.getExtras();
if(!bundle.getString("data").equals(null)){
data= bundle.getString("data");
}
}
else
data="0";
のonStartCommand(でActivity 1
Intent start_service = new Intent(getContext(), ConnectService.class);
start_service.putExtra("data", "123");
getContext().startService(start_service);
で
が)私はdata
が設定されているかどうかを確認するhasExtra
機能を使用したり、ない。私の目的では、ケース1はサービス1がActivity 1
からデータを受信できることです。ケース2では、アクティビティ1から開始しないと、たとえば実行中のすべてのアプリをクリーンアップすると、電話機はSTART_STICKY
のため自動的にサービス1を開き、サービス1はデータを「0」に設定します。したがって、私の問題は2番目のケースからです。アプリケーションが存在しているかどうかをチェックできないため、アプリケーションがクラッシュしています。
に起因:java.lang.NullPointerExceptionが:NULLオブジェクト参照
どうでしに 'ブールandroid.content.Intent.hasExtra(java.lang.String)を' 仮想メソッドを呼び出す試み私は問題を解決する?このステップintent
の条件
これを試してください。http://stackoverflow.com/questions/38265993/timer-inside-android-service –
ありがとう、場合によっては、サービスはアクティビティ1ではなく他のアクティビティから再起動できます。解決策が解決できません。 – Jame