android意图有什么区别?

时间:2013-08-17 13:11:07

标签: android android-intent

用于startActivity()的意图与用于sendBroadcast()方法的意图之间有什么区别?在教程中,我找到了一种动态注册广播接收器的方法。为此,我必须提供一个字符串作为我的意图名称。如何在这种情况下选择意图名称并用于sendBroadcast()registerReceiver()

我应该在android_manifest.xml文件中添加内容吗?根据教程,我目前已经声明了这样的意图名称:

private static final String SEARCH_ACTION = "com.example.usingwebservices.rest.SEARCH";
@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    unregisterReceiver(receiver);
}
@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    registerReceiver(receiver, new IntentFilter(SEARCH_ACTION));
}
private BroadcastReceiver receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        if(progress!=null){
            progress.dismiss();
        }
        String response = intent.getStringExtra(RestTask.HTTP_RESPONSE);
        result.setText(response);
    }
};

1 个答案:

答案 0 :(得分:0)

我认为你做对了。在enter link description here后面有两种注册接收器的方法:

You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an implementation through the <receiver> tag in your AndroidManifest.xml.

并且在服务中排队的消息可能是:

 Intent i = new Intent("com.example.usingwebservices.rest.SEARCH");
 i.putExtra(RestTask.HTTP_RESPONSE, "msgdetails");
 context.sendBroadcast(i);

意图的构造,参数是一个动作名称:

Intent(String action)

当使用startActivity时,我使用的构造:

Intent(Context packageContext, Class<?> cls)

您可以在here之后看到意图的引用:

我认为Google希望打包最多的msg格式。