2014/09/17

書摘:托爾斯泰藝術論


托爾斯泰藝術論(What is Art?)

促使人類進步的兩大重要因素:語言文字、藝術。

  • 語言文字;傳達人們的思想與經驗
  • 藝術:傳達感覺與情感

藝術是一種人類的活動,藉此將自己的感受有意識地傳達給他人

藝術感染力的強度取決於三條件:

  • 所傳達之情感的特別度
  • 所傳達之情感的清晰度
  • 藝術家的真誠度


2014/09/15

Android APP無法取得GCM notification token

維護一支具有GCM notification功能的Android APP,因應客戶customization需要,必須更改package name以及修改manifest裡的root package定義,這會影響generated出來的R.java的package定義,因此,須再針對受影響的各程式更改import路徑

這樣的改法應該是最簡單的,比用refactor功能變更各package的name快多了 (之前也遇到一樣的需求,這樣改就OK了,也不會大幅改變svn裡的架構) 

不過卻遇到了一個問題,當device送資料到server時,GCM register ID(token)竟是空的! trace一下程式,我有一個GCMIntentService class是繼承GCMBaseIntentService,原來override上層的onRegistered是會被呼叫的,現在程式一執行,這個callback function竟然一直沒有被叫用,難怪token會是空的。 可是,這又是那裡出錯了?改的東西好像也沒幾個,而且那些應該都不會影響到這部份的功能呀。

找了許多資料,也做了一些嘗試,找到了一個因素,就是這個GCMIntentService必須要在menifest所定義的root package,例如說,menifest定義的package是com.abc.app,則這個service也要在com.abc.app,不可以在com.abc.app.service等其他的package中,即使manifest對service的宣告是指向com.abc.app.service也不行! 所以,只好再用refactor功能,把這個GCMIntentService移到它該在的package中,這樣執行起來就OK了!