【发布时间】:2012-03-22 09:39:16
【问题描述】:
我在更新我的 textview 时遇到问题。 我正在制作一个 c2dm 应用程序。设备正在接收我发送的消息(因为我已将消息显示在通知栏中。我也有许多日志表明已收到消息)。但是,一旦我单击通知区域中的消息以打开我的视图,它只会显示我的 1 条消息。例如,我发送一条消息,然后我想仅在第一条消息显示时发送另一条消息。
我发现我可能需要onNewIntent 但是我不确定我是否以正确的方式绕过它。
public class MessageReceivedActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String message = extras.getString("payload");
if (message != null && message.length() > 0) {
TextView view = (TextView) findViewById(R.id.result);
view.setText(message);
}
}
super.onCreate(savedInstanceState);
}
@Override
protected void onNewIntent(Intent intent) {
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String message = extras.getString("payload");
if (message != null && message.length() > 0) {
TextView view = (TextView) findViewById(R.id.result);
setIntent(intent);
view.setText(message);
}
}
// setIntent(intent);
}
}
我的布局是 activity_result,它只包含 1 个文本视图 我的文本视图称为结果 有效载荷是我从服务器发送的消息
任何帮助将不胜感激
【问题讨论】:
-
Tuffy,据我所知,如果您使用
startActivity()开始此活动,您需要android:launchMode="singleTop"才能获得MessageReceivedActivityAndroidManifest' orIntent.FLAG_ACTIVITY_SINGLE_TOP` -
已经想到了。我的启动模式是单顶boss
-
好的,然后使用
Intent intent2=getIntent(); String str=intent2.getData();而不是Bundle extras = getIntent().getExtras(); -
我在 getData("payload"); "Intent 类型中的 getData() 方法不适用于参数 (String)"
-
String str = getIntent().getStringExtra("payload", "");
标签: android android-layout android-intent android-c2dm android-2.2-froyo