- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
一个 Activity 是一个单一的实例 Activity 。
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class A extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("A");
startActivity(new Intent(this, B.class));
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
testLog("new Intent A");
}
private void testLog(String string) {
Log.d("test", string);
}
@Override
protected void onDestroy() {
super.onDestroy();
testLog("destroy A");
}
}
B Activity 是标准 Activity 。
在正常情况下A->B。用户action返回操作,B销毁。用户再次按下,A 销毁。没错。
但在另一种情况下:A->B。用户操作主页按钮。当用户重启任务时,android框架调用A的onNewIntent()
。
为什么?我的意思是 Activity 堆栈应该是这样的:
-B
-A
为什么android框架将 Intent 路由到A?
最佳答案
singleTop
、singleTask
和singleInstance
之间存在差异。阅读the documentation了解更多信息,但您确实要注意 singleInstance
的描述。
Only allow one instance of this activity to ever be running. This activity gets a unique task with only itself running in it; if it is ever launched again with the same Intent, then that task will be brought forward and its Activity.onNewIntent() method called. If this activity tries to start a new activity, that new activity will be launched in a separate task. See the Tasks and Back Stack document for more details about tasks.
这正是您所看到的并且应该是预期的行为。
关于android - SingleInstance Activity 让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394582/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!