2013-04-22 101 views
0

我想在佈局更新一個TextView,當服務檢測到呼叫被錯過, 我用了onCreat方法這段代碼在我的服務:更新的TextView

public void onCreate() { 
    super.onCreate(); 

    final LayoutInflater mcInflator = (LayoutInflater) ctext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    bla bla bla bla bla 
    ... 

if (call.toString().contains("Missed")){ 

        View mcLayout= mcInflator.inflate(R.layout.m_call, null); 
        TextView mc = (TextView) mcLayout.findViewById(R.id.mcText); 
        mc.setText("Missed Call"); 
       } 

       if (call.toString().contains("Outgoing")){ 

    bla bla bla bla bla .... 

但是當我檢查我的佈局,Textview沒有改變?有什麼建議嗎?

+0

**「有什麼建議嗎?」** - 是的......不要嘗試這樣做。首先,你不能保證一個「活動」會實際存在。其次,你不能膨脹或訪問來自「服務」的「Activity」中的視圖。第三,你爲什麼要這樣做?如果我錯過了一個電話,我會收到一個通知,告訴我我錯過了電話 - 這是通知某人有錯過電話的正確方式 - 不是在可能運行也可能不運行的「活動」的「TextView」中。 – Squonk 2013-04-22 23:40:15

回答

0

哦,我... OK,我們開始吧:

  • 你不想做任何UI的東西的服務。這是非常糟糕的做法。
  • 您正在創建和修改視圖的新實例,而不是屏幕上顯示的實例。
  • 你可能想要做的是綁定正在運行的服務。一個例子見here