Tom*_*han 30 android android-intent
我可能误解了应该如何使用意图,所以我可能在这里问错了.如果是这样的话,无论如何都请帮助我走上正轨......
我刚刚开始研究一个Android应用程序,它会经常轮询我的服务器上的消息,当有新消息可用时,我想向用户显示它.我试图通过Service轮询服务器来实现这一点,并且当收到新消息时,服务应该将消息提供给Activity显示它的消息.
为了促进这种沟通,我正在尝试创建一个Intentwith ACTION_VIEW,但我无法弄清楚如何将消息提供给活动.有没有办法通过意图传递字符串或常规Java对象?
对于它的价值,这就是我想做的事情:
getApplication().startActivity(new Intent(MessageService.this, ViewMessageActivity.class, message));
Run Code Online (Sandbox Code Playgroud)
但当然,这甚至都没有编译.
Tel*_*ues 65
使用Intent包添加额外信息,如下所示:
Intent i = new Intent(MessageService.this, ViewMessageActivity.class);
i.putExtra("name", "value");
Run Code Online (Sandbox Code Playgroud)
并在接收方:
String extra = i.getStringExtra("name");
Run Code Online (Sandbox Code Playgroud)
或者,将所有额外内容作为捆绑包,与类型无关:
Bundle b = i.getExtras();
Run Code Online (Sandbox Code Playgroud)
该putExtra()方法有各种签名,各种方法根据其类型获取数据.你可以在这里看到更多:Intent,putExtra.
编辑:要传递一个对象,它必须实现Parcelable或Serializable,因此您可以使用以下签名之一:
putExtra(String name,Serializable value)
putExtra(String name,Parcelable value)
Nic*_*ick 17
您可以执行以下操作将信息添加到intent bundle中:
Intent i = new Intent(MessageService.this, ViewMessageActivity.class);
i.putExtra("message", "value");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
然后在活动中,您可以像这样检索:
Bundle extras = getIntent().getExtras();
String message = extras.getString("message");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40196 次 |
| 最近记录: |