我的想法:
点击图标时,不妨都去调用MainActivity(即只设置它为主应用)。
在MainActivity的创建代码中判断是否已经登录成功,
如果没有登录成功,则立即startActivityForResult来启动LoginActivity:这种调用需要等待结果才返回。
点击图标时,不妨都去调用MainActivity(即只设置它为主应用)。
在MainActivity的创建代码中判断是否已经登录成功,
如果没有登录成功,则立即startActivityForResult来启动LoginActivity:这种调用需要等待结果才返回。
在service中登录后,并不会自动显示用户介面。
这时用户可以通过service 发出的notification打开主界面
也可以通过点击程序图标打开主界面。
你是说用户点击程序图标时要根据service来选择显示MainActivity还是LoginActivity是吧?
这样的话,可以将另一个没有界面的Activity设为主界面,bind这个service,检测其登陆状态,如果已登录,startActivity(MainActivity),否则用login界面
service,activity这些组件本来都在同一个进程里面,除非你编码的时候放在不同的进程中。
如果你的一个进程放service,启动另外一个进程的activity,你放心,这样是不会起来两个进程,只是activity压入你当前的进程的栈。
你可以去确认一下。
同一个应用,只要没有显示的调用System.exit,没有kill进程。
这种情况下,只要service没有退出,启动任何次launcher都不会开启新的进程。
因此,用一个单例模式的对象保存系统状态是可以的。