如何完成应用程序堆栈中的任何先前活动(在任何级别,我的意思不是直接的父级),从当前活动,如某些特定事件,我想要使之前的活动无效?有帮助吗?谢谢.
Rya*_*yan 28
我知道这个答案可能会迟到,但我仍然会发布它以防万一有人正在寻找这样的东西.
我做的是我在中声明了一个静态处理程序 ACTIVITY_A
public static Handler h;
Run Code Online (Sandbox Code Playgroud)
在我的onCreate()方法中ACTIVITY_A,我有
h = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what) {
case 0:
finish();
break;
}
}
};
Run Code Online (Sandbox Code Playgroud)
现在,从这个之后的任何活动,例如ACTIVITY_B,或者ACTIVITY_C我可以打电话
ACTIVITY_A.h.sendEmptyMessage(0);
Run Code Online (Sandbox Code Playgroud)
然后调用finish()在ACTIVITY_A和当当!ACTIVITY_A是从不同的活动完成的.
所以我厌倦了这个,但在我做了更深入的测试后没有用(我把它留在这里以供将来参考): android:clearTaskOnLaunch
例如,假设有人从主屏幕启动活动 P,然后从那里转到活动 Q。用户接下来按下 Home,然后返回活动 P。通常,用户会看到活动 Q,因为这就是他们最后在 P 的任务中做。但是,如果 P 将此标志设置为“true”,则当用户按下 Home 并且任务转到后台时,它上面的所有活动(在本例中为 Q)都将被删除。所以用户在返回任务时只能看到 P。
https://developer.android.com/guide/topics/manifest/activity-element.html
更新 这确实有效
Intent intent = new Intent(this, MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14050 次 |
| 最近记录: |