亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android 全局獲取Context & Intent傳遞對象

標簽:
Android
全局获取 Context

很多情况下都需要用到 Context,由于大部分操作都是在活动中进行的,而活动本身就是一个 Context 对象,所有只需要Activity.this 就可以轻松获得 Context对象。
但是,当应用程序的架构逐渐复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,这种情况下获取 Context并非是那么轻松的一件事。

Android 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。
定制一个 Application 以便于管理程序内全局状态的信息,比如 Context,代码如下:

public class MyApplication extends Application {

    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        //得到一个应用程序级别的 Context
        context = getApplicationContext();
    }

    public static Context getContext() {
        return context;
    }
}

接下来需要在 AndroidManifest 文件的<application>标签下指定程序启动时初始化 MyApplication 类:

 <application android:name="MyApplication">...</application>

这样就实现了一种全局获取 Context 的机制,之后不管你想在项目的任何地方使用 Context,只需要调用一下 MyApplication.getContext() 方法就可以了:

     Toast.makeText(MyApplication.getContext(),"全局Context获取成功",Toast.LENGTH_SHORT).show();

使用 Intent 传递对象

Intent 的 putExtra( )方法中所支持的数据类型是有限的,当你想去传递一些对象的时候就需要将这些对象进行序列化。
序列化表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。

对象序列化的方法很简单,只需要让一个类去实现 Serializable 这个接口就可以了。

public class Festival implements Serializable {
    private String name;
    private String data;

    public Festival(String name,String data){
        this.name = name;
        this.data = data;
    }

    public String getName() {
        return name;
    }

    public String getData() {
        return data;
    }
}

接下来在 FirstActivity 中创建一个 Festival 实例,然后直接将它传入到 putExtra()方法中。

 Festival festival = new Festival("元旦节","1月1日");
 Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
 intent.putExtra("festival_object", festival);
 startActivity(intent);

最后在 SecondActivity 中调用 getSerializableExtra() 方法获取这个对象。

 Person person = (Person)getIntent().getParcelableExtra("person_object");

如此一来,我们就成功实现了使用 Intent 传递对象的功能了。

點擊查看更多內容
12人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消