怎么看是活动运行与否?

时间:2012-05-07 12:48:29

标签: android

我有一个BroadCastReceiver正在侦听传入的短消息。在SmsReceiver中,我想启动一个Activity来处理短信。在很多情况下,Activity在获取消息时正在运行,我不想再次启动它。

事实上,我希望看到如果该Activity已经在运行(可见或尚未被杀死),只需将其置于前面,然后以新任务启动它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我从这里和其他地方混合了一些想法,最后解决了这个问题。我在这里为可能有类似情况的其他人编写解决方案:

在amy活动中:

static boolean isRunning = false;

@Override
public void onStart() {
    super.onStart();
    isRunning = true;
}

public void onStop() {
    isRunning = false;
    super.onStop();
}

public static boolean isRuuning() {
    return isRunning;
}

@Override
public void onCreate(Bundle savedInstanceState) {       
    smsReceiver = new SmsReceiver();
    smsReceiver.setActivity(this);
    // ...
}

在我的SmsReceiver中:

static MyActivity myActivity;

public void setActivity(MyActivity MyActivity) {
    SmsReceiver.myActivity = myActivity;
}   

if( MyActivity.isRuuning() ) {
    SmsReceiver.myActivity.receiveNewMessage(smsBody);
} else {
    // Create an intent and start it
}

这对我来说很好。