2013-07-17 16 views
0

我是一名初学者,已阅读关于服务和广播接收器组件的文章。 但我现在不是真的,在这里做什么。 我有一个服务(类:ExampleService)总是变化的变量k:Android:BroacastReceiver的服务价值

@覆盖 保护无效onHandleIntent(意向意图){

while (k < 1000) { 

    if(forward==true){ 
     k++; 
    }else{ 
    k--;  
    } 


    synchronized (this) { 

     try { 

      wait(100); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

k = 0; 
this.stopSelf(); 

} 

public long getInt(){ 
    return k; 
} 

和我的广播接收器:

BroadcastReceiver broadi=new BroadcastReceiver(){ 

@Override 
public void onReceive(Context arg0, Intent arg1) { 
    // TODO Auto-generated method stub 
    ExampleIntentService se=new ExampleIntentService(); 

      text.setText("Count:"+String.valueOf(se.getInt())); 
} 

}; 

所以我创建了一个服务对象,并尝试使用我的'getInt()'方法来获取该值。 它总是返回0,我不知道为什么。 任何提示?

回答

0

当你调用

ExampleIntentService se=new ExampleIntentService(); 

您正在创建类的新istance,你是不是指服务的运行实例。我认为你有两次机会:

  • 使k和它的getter方法静态。使其成为静态k将不会变成实例相关,您可以通过调用

    来读取它的值。ExampleIntentService.getInt();

  • 发送一个广播,可以由你的广播接收器接收,每次更改k时间,但我认为这是由瞬间大量的工作,你可以在第二发送10广播100秒

+0

它的工作原理!非常感谢你! – Hayabusa