1

我在活动中有一个按钮,现在我希望在文件完成解压缩后更改按钮文本。我已经完成了如下操作,并在活动中注册了广播。我的问题是如何在onReceive()方法中获取活动实例。

BroadcastReceiver receiveDecompressionNotification = new BroadcastReceiver(){

    @Override
    public void onReceive(Context c, Intent in) {
        // TODO Auto-generated method stub

    }

};
4

1 回答 1

0

如果您现在还没有找到解决方案,这可能会对您有所帮助,因为它几乎是同一件事:在我的情况下,当我service停止播放声音时,我想更改按钮的文本。因此,播放后将执行以下操作:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp)
    {
        Intent i = new Intent("CHANGE_BUTTONSTATE");
        i.putExtra("state", "play");
        sendBroadcast(i);
    }});

像您一样,我BroadcastReceiver在执行请求的活动中注册了我的。对应的onReceive()看起来像这样:

@Override
public void onReceive(Context context, Intent intent)
{
    String state = intent.getExtras().getString("state");
    playButton.setText(state);
}};

playButton活动中声明的位置onCreate()

Button playButton = (Button) findViewById(R.id.playButton);

这种方法可能不是最好的,因为我是初学者 - 所以任何改进和建议都值得赞赏。

于 2013-06-10T23:13:40.737 回答