当前位置: 代码迷 >> Android >> 进入一个activity时,如何把之前的一个activity finish
  详细解决方案

进入一个activity时,如何把之前的一个activity finish

热度:252   发布时间:2016-04-27 22:55:46.0
进入一个activity时,怎么把之前的一个activity finish?
比如现在有a,b,c三个activity,当从a进入到b中时,如果没有操作直接点返回的话,不finish a,如果有操作,就是从b进入到c时,怎么把a finish?
------解决思路----------------------
             用广播 发个 广播消息到 你的 a 中 收到 关闭
------解决思路----------------------
楼上正解,发个广播结束Activity
------解决思路----------------------
引用:
Quote: 引用:

             用广播 发个 广播消息到 你的 a 中 收到 关闭
具体怎么写啊?

public class ManagementActivityReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {

finish();
Log.d("LOG_TAG ManagementActivityReceiver", "finish");
}


}

Intent sendFinishBroadcaseIntent = new Intent();
sendFinishBroadcaseIntent.setAction("management.activity.receiver");
sendBroadcast(sendFinishBroadcaseIntent);

receiver = new ManagementActivityReceiver();

IntentFilter filter = new IntentFilter();
            filter.addAction("management.activity.receiver");
            registerReceiver(receiver, filter);

------解决思路----------------------
通过广播很方便
通过维护一个 Stack<Activity> 也可以实现
------解决思路----------------------
Activity A、B:

public static A mInstace = null;

void onCreate(Bundle savedInstanceState){

mInstace = this;

}


B:

A.mInstance.finish();
------解决思路----------------------
引用:
Activity A、B:

public static A mInstace = null;

void onCreate(Bundle savedInstanceState){

mInstace = this;

}


B:

A.mInstance.finish();

,直接获取 A 的实例 finish() 掉
  相关解决方案