1

嗨,我是开发 android 应用程序的新手,我有一些问题。

我的 GCM 工作正常:

protected void onMessage(Context context, Intent intent) {
        Log.i(TAG, "Receenter code hereived message");
        Log.i(TAG, intent.getStringExtra("name"));
        Log.i(TAG, intent.getStringExtra("fone"));

        //google example (with this, the "message" ll be append in screen, like a miracle)
        displayMessage(context, intent.getStringExtra("nome") + " " + intent.getStringExtra("telefone"));
    }

登录名称和 fone,但我想在我的表单字段中输入“消息”。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dip" >

    <TableLayout
        android:id="@+id/TableLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="8dp" >

         <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp" >



        <TextView
            android:id="@+id/display"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        </TableRow>

        <EditText
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/fone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" />
    </TableLayout>

</ScrollView>

我该怎么做?(获取活动,获取字段,填写字段......)

4

1 回答 1

1

一旦您收到“消息”,您GCMIntentService可以通过多种方式将其内容传递给其他应用程序组件。

在 GCM 演示应用程序中,他们创建了一个通知(请参阅“generateNotification”方法)。 https://code.google.com/p/gcm/source/browse/samples/gcm-demo-client/src/com/google/android/gcm/demo/app/GCMIntentService.java

如果您想在 an 中显示内容Activity,那么您需要使用所需的数据作为“附加”Intent来触发 an 。Activity

您不会在 GCM 服务中“获取活动”,而是指定“意图”,系统将调用正确Activity的来处理它。有关更多信息,请参阅有关意图/意图过滤器的文档:http: //developer.android.com/guide/components/intents-filters.html

这是一个过于简单的例子:

protected void onMessage(Context context, Intent intent) {
  Log.i(TAG, "Receenter code hereived message");
  Log.i(TAG, intent.getStringExtra("name"));
  Log.i(TAG, intent.getStringExtra("fone"));

  // create ANOTHER intent to fire off the data to YOUR activity
  Intent i = new Intent(this, MyActivity.class);
  i.putExtra("nome", intent.getStringExtra("nome"));
  i.putExtra("fone", intent.getStringExtra("fone"));
  startActivity(i);      

}

然后在 MyActivity 中执行以下操作:

 String nome = getIntent().getStringExtra("nome");

正如我所说,这个例子过于简单(你需要在使用它之前检查数据是否真的存在,在你的服务和你的活动中,你可能想要使用其他数据类型并有默认值,还有其他方法可以交换数据取决于要求),但它应该让你开始。

于 2013-03-07T15:12:07.360 回答