2013-07-23 204 views
0

我有1个活动和1个普通类,其中活动一个接收消息和普通类发送消息。如何实现它:Android接收和发送消息

在ActivityOne.class

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

    public mHandler = new Handler() { 
     public void handleMessage(Message msg) { 
      super.handleMessage(msg); 
      switch (msg.what) { 
       case 10: 
        Toast("Get message 10"); 
        break; 
       case 1: 
        Toast("Get message 1"); 
        break; 
      } 
     } 
    }; 
} 

public void Toast(String text) { 
    Toast.makeText(ActivityOne.this, text, Toast.LENGTH_SHORT).show(); 
} 

而且在Ordinary.class

如何代码sendEmptyMessage(1)?

回答

1

你可以用它

编辑:

public class TestApplication extends Application{ 

private Handler handler = null; 

    public void setHandler(Handler handler) { this.handler = handler; } 
    public Handler getHandler() { return handler; } 
} 

然后在ActivityOne

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Handler mHandler = new Handler() { 
     public void handleMessage(Message msg) { 
      super.handleMessage(msg); 
      switch (msg.what) { 
       case 10: 
        Toast("Get message 10"); 
        break; 
       case 1: 
        Toast("Get message 1"); 
        break; 
      } 
     } 
    }; 
    TestApplication mAPP = (TestApplication) getApplication(); 
    mAPP.setHandler(mHandler); 
} 

ActivityTwo

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activity_two); 
    TestApplication mAPP = (TestApplication) getApplication(); 
    mAPP.getHandler().sendEmptyMessage(1); 

} 

,你必须修复AndroidManifest.xml中添加机器人:名字= “TestApplication”

<application 
    android:allowBackup="true" 
    android:name=".TestApplication" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

EDIT2:

你也可以使用普通classse或类似的东西,上面的代码这样的:

public class ordinary{ 
    private Handler handler = null; 

    public ordinary(Handler handler) { this.handler = handler; } 
    public void doSomeThing(){ 
     handler .sendEmptyMessage(1); 
    } 
} 
在ActivityOne

ordinary clazz = new ordinary(mHandler); 
clazz.doSomeThing(); 

编辑结束

+0

错误代码 –

+0

@HaicalRams!对不起,让我试试 – zt9788

+0

@HaicalRams我固定我的帖子,我是尝试它可以工作〜 – zt9788