私はActivity
自分からを呼び出していService
ます。これは、イベントが発生するたび、およびIntentを介してSerializableオブジェクトを渡すたびに行います。ここでの問題は、アクティビティが2回目に呼び出されたときに、新しいインテントデータではなく、古いインテントデータを持っていることです。ですから、これは私がクラスで犯した間違いによるものだと確信していますが、Activity
それを理解することはできません。
public class ReceiveActivity extends Activity {
AlertDialog alertDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Event");
CustomEvent custom= (CustomEvent) getIntent().getSerializableExtra("custom");
alertDialog.setMessage(custom.getName());
alertDialog.setIcon(R.drawable.ic_launcher);
alertDialog.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ReceiveActivity.this.finish();
}
});
alertDialog.show();
}
@Override
protected void onPause() {
if(alertDialog!=null) {alertDialog.dismiss();}
super.onPause();
}
@Override
protected void onStop() {
if(alertDialog!=null) {alertDialog.dismiss();}
super.onStop();
}
これは、サービスからアクティビティを呼び出すために使用するコードです(aを介してNotification
)
Notification notification = new Notification(R.drawable.ic_launcher, "msg",
System.currentTimeMillis());
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
Intent incoming =new Intent(this, ReceiveActivity.class);
incoming.putExtra("custom",custom);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,incoming, 0);
notification.setLatestEventInfo(this, "msg","incoming", contentIntent);
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify("Incoming", count++,notification);
}