Hola que tal precisaría ayuda para clarificar una idea.
Estoy haciendo una aplicación y estoy un poco trancado porque no me doy cuenta cual puede ser la mejor forma de implementar una combinación de Fragments y GCM.
Lo que estoy haciendo es lo siguiente.
Tengo una aplicación que cuando abre muestra una lista de opciones si se ejecuta en un Celular muestra una sola Activity si se visualiza en una tablet muestra dos, como les decía esta hecha con Fragments.
También la aplicación utiliza el GCM para recibir mensajes enviados desde el servidor, dependiendo del contenido la acción que debe tomar, por ejemplo si el mensaje es “Servicio”, debería mostrar de forma automática una Activity y pasarle el parámetro “Servicio”.
Dicha activity es un Fragment porque esta se utiliza también desde el menú principal.
Mi duda es saber si en el método onMessage me conviene hacer el filtrado y desde ahí invocar la activity y como le pasaría el parámetro al Fragment.
Estos son los códigos.
- Código: Seleccionar todo
@Override
protected void onMessage(Context context, Intent intent) {
String msg = intent.getExtras().getString("message");
Log.i("Servicio", "Nuevo Mensaje " + msg);
if(msg.equals("Servicio")){
Intent viaje = new Intent(context, ServiceOfferActivity.class);
context.startActivity(viaje);
}
}
- Código: Seleccionar todo
public class ServiceOfferFragment extends Fragment {
public ServiceOfferFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.fragment_detail_service, container, false);
return rootView;
}
}
- Código: Seleccionar todo
public class ServiceOfferActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_detail);
getActionBar().setDisplayHomeAsUpEnabled(true);
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.add(R.id.item_detail_container, new ServiceOfferFragment())
.commit();
}
}
}
En los códigos anteriores les muestro la invocación ahora bien, también pensé en usar un BroadcastReceiver para filtrar los mensajes recibidos.
La ayuda que les pido es saber como le paso los parámetros al FragmentActivity, que recomendación me hacen para trabajar con el GCM.
Dado que si fuera una comunicación entre Activity los parámetros los pasaría con el putExtra.