###目標
Androidで、serviceクラスにintentを使用してobujectの受け渡し
MainActivityで渡したいオブジェクトのシリアライズクラスを作ってintentに挿入してからサービスを起動して、
サービス側で受けとりたいのですが、エラーが出ずにアプリケーションが落ちてしまいます。
MainActivityをserviceに渡すのは設計上(見た目が)よくないのはわかるのですが...途中まで作ってしまったので、書き換えるとミスりそうなのでこのような形になっています。
どのようにしたら問題が解決しますか
###ソースコード
java
1 2public class MainActivity extends AppCompatActivity { 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_main); 8 Intent intent = new Intent(MainActivity.this, StateService.class); 9 MainData mainData=new MainData(); 10 mainData.setMainActivity(this); 11 intent.putExtra("main",mainData); 12 startService(intent); 13 (省略)
java
1public class StateService extends Service { 2private MainActivity mainActivity; 3 @Override 4 public int onStartCommand(Intent intent, int flags, int startId) { 5 MainData data = (MainData)intent.getSerializableExtra("main"); 6 mainActivity=data.getMainActivity(); 7 return super.onStartCommand(intent, flags, startId); 8 } 9}
java
1public class MainData implements Serializable{ 2 private MainActivity mainActivity; 3 4 public MainActivity getMainActivity() { 5 return mainActivity; 6 } 7 public void setMainActivity(MainActivity mainActivity) { 8 this.mainActivity = mainActivity; 9 } 10}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/06 08:05