码迷,mamicode.com
首页 > 其他好文 > 详细

Intent

时间:2015-07-08 22:08:45      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

1.隐式Intent

通过隐式Intent可以在不知道类名称的情况下 也能调用相关应用,也可以跨应用调用。

首先创建一个新的Activity,然后将视图与Activity绑定。在AndroidMenifest文件中对Activity进行注册。

默认是跨应用的,如果不跨应用,需对注册时的android:exported 进行处理。

分别如下:

public class MyAty extends Activity {

    //供其他调用的字符串,要同注册在AndroidMenifest.xml文件中的action -name相同。
    public static final String ACTION="com.example.ru.intenttest.intent.action.MyAty";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actyvity_my); //将视图与Activity绑定
    }
}
 <activity android:name=".MyAty" android:exported="false">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT"></category>
                <action android:name="com.example.ru.intenttest.intent.action.MyAty"></action>
            </intent-filter>
        </activity>

调用方式与显示Intent不同,

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.btnStart).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // startActivity(new Intent(MainActivity.this,MyAty.class));//显式Intent
                startActivity(new Intent(MyAty.ACTION));   //隐式Intent
            }
        });
    }

 

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.btnStartOther).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    startActivity(new Intent("com.example.ru.intenttest.intent.action.MyAty"));//跨应用,隐式调用
                }
                catch (Exception e)
                {
                    Toast.makeText(MainActivity.this,"No open",Toast.LENGTH_SHORT).show();//一定要show出来,(这是没权限时的提示)
                }
            }
        });
    }

 

Intent

标签:

原文地址:http://www.cnblogs.com/hometown/p/4631306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!