私の主な活動は3つのチェックボックスがあります。私は、 "submit"ボタンが押されたときに、これらのチェックボックスがサービスにチェックされているかどうかを渡すことができるようにしたい。ここに私のコードは次のとおりです。アクティビティのチェックボックスの値をサービスに渡すにはどうすればよいですか?
public void onClick(View v) {
// TODO Auto-generated method stub
Intent start_service = new Intent();
start_service.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
start_service.setClass(getApplicationContext(), FollowService.class);
if(box1.isChecked()){
boxes[0] = 1;
}
if(box2.isChecked()){
boxes[1] = 1;
}
if(box3.isChecked()){
boxes[2] = 1;
}
start_service.putExtra("com.mypackage.boxes", selections);
box1.setChecked(false);
box2.setChecked(false);
box3.setChecked(false);
getApplicationContext().startService(start_service);
}
私は、私は次のようにして、私のonStartCommandの内部でサービスに渡すしようとしています。この配列にアクセスしよう:
public int onStartCommand(Intent intent, int flags, int startID){
try {
Bundle selections = intent.getExtras();
int [] boxes = selections.getIntArray("boxes");
if(boxes[0] == 1){
// do something
}
if(boxes[1] == 1){
// do something
}
if(boxes[1] == 1){ // do something
}
checkWebsite();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return START_STICKY;
}
私のアプリケーションが起動しますと、 「送信」ボタンを押したときに私のところで強制的に閉じることはありませんが、LogCatでsystem.errメッセージが表示されています。
サービスを開始しようとしたときに受け取ったLogCatのエラーメッセージは次のとおりです。あなたがする必要があるかもしれません
06-19 04:20:51.514: WARN/System.err(300): java.lang.NullPointerException
06-19 04:20:51.536: WARN/System.err(300): at com.mypackage.FollowService.onStartCommand(FollowService.java:60)
06-19 04:20:51.536: WARN/System.err(300): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3053)
06-19 04:20:51.544: WARN/System.err(300): at android.app.ActivityThread.access$3600(ActivityThread.java:125)
06-19 04:20:51.544: WARN/System.err(300): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2096)
06-19 04:20:51.554: WARN/System.err(300): at android.os.Handler.dispatchMessage(Handler.java:99)
06-19 04:20:51.554: WARN/System.err(300): at android.os.Looper.loop(Looper.java:123)
06-19 04:20:51.554: WARN/System.err(300): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-19 04:20:51.574: WARN/System.err(300): at java.lang.reflect.Method.invokeNative(Native Method)
06-19 04:20:51.574: WARN/System.err(300): at java.lang.reflect.Method.invoke(Method.java:521)
06-19 04:20:51.574: WARN/System.err(300): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-19 04:20:51.574: WARN/System.err(300): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-19 04:20:51.584: WARN/System.err(300): at dalvik.system.NativeStart.main(Native Method)
logcatエラーを通知してください。 – sgarman