| 分类: 技术 |
| 分类: 技术 |
| 分类: 技术 |
| 分类: 技术 |
| 分类: 技术 |
因为一个多任务的需求,所以想到了使用 SingleInstance 方式启动多任务容器 Activity,保证一定情况内 Activity 不被销毁,可以随时切换回来操作。
基于面向百度编程可知 SingleInstance 会另开一个返回栈(Task)来启动该 Activity,但首先有两个问题需要解决:
1. 如何从SingleInstance 返回到上一个 Activity
2. ActivityResult的实现
这篇文章中我们先来解决第一个问题:
(1) 直接调用 moveTaskToBack(boolean nonRoot) 方法
这个方法使用时看似方便,但是一旦用户通过概览屏幕(或者叫最新动态屏幕、最近任务列表或最近使用的应用)回到这个 SingleInstance,再点击返回按钮隐藏任务栈就会导致app直接返回到主页面。这里我们就需要想办法回到上一个 Activity 的返回栈。
(2) 通过遍历返回栈回到上一个 Activity
这种方法能够较好地解决返回问题,moveTaskToFront(int taskId, @MoveTaskFlags int flags)需要 REORDER_TASKS 权限。这里值得注意的是 ActivityManager#getRunningTasks(int maxNum) 这个方法在 Android 5.0 被弃用,API >= 21 时只能获取到当前APP的返回栈。
(3) 直接向 SingleInstance Activity 传递 TaskId
在 Intnet 跳转时直接传入该 Activity 所在的 TaskId
返回时直接通过 TaskId 回到上一个栈。
| 分类: 技术 |
public static void fitPopupWindowOverStatusBar(PopupWindow mPopupWindow, boolean needFullScreen) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
Field mLayoutInScreen = PopupWindow.class.getDeclaredField("mLayoutInScreen");
mLayoutInScreen.setAccessible(needFullScreen);
mLayoutInScreen.set(mPopupWindow, needFullScreen);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
| 分类: 技术 |
“网络发现”所依赖的服务如下:
Function Discovery Resource Publication
SSDP Discovery
UPnP Device Host
文件和打印机共享:
Computer Browser
将启动类型改为自动,然后点应用,再把服务状态改为启动
1.进入网络->网络和共享中心->高级共享设置,打开“家庭或工作”,在“网络发现”中选“启用网络发现”,在“文件和打印机共享”选“启用文件和打印机共享”,在“密码保护的共享”选“关闭密码保护共享”。
2.打开Guest账户,和xp基本一样,右键计算机->管理->本地用户和组->用户,在Guest上右键,属性,去掉“用户已禁用”。
3.设置共享文件夹,再要共享的文件夹上点右键->属性->共享->共享,在“添加”左边选“everyone” ,然后添加,权限级别设置为“读取”,共享就可以了。如果要取消,就进入“高级共享”,去掉“共享”的勾就可以了。
另:在“家庭或工作”的地方还有个“公用文件夹共享”,这个可以不启用的,如果启用了是在C盘下用户文件夹里的公用文件夹。
标签:
it |
分类: 技术 |
对一个表的一个列添加主键的时候出现下变得错误提示
“Encyclopedia”表
- 无法创建索引“PK_Encyclopedia”。
CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.Encyclopedia' 和索引名称
'PK_Encyclopedia' 有重复的键。重复的键值为 (16277)。
无法创建约束。请参阅前面的错误消息。
语句已终止。
如果不熟悉的话会以为有重名的问题,但实际上是这个列的已经有的数据包括重复的内容。
标签:
it |
分类: 技术 |
异 常详细信息: System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
上述错误我遇到两种情况,一种是在打开打开SQL Server 2005时弹出的,另一种是在应用程序连接SQL Server
2005时出现的.归纳了一下,由以下几个原因:
1.数据库引擎没有启动.
有两种启动方式:
(1)开始->程序->Microsoft SQL Server
2005->SQL Server
2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database
Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;
(2)可打开:开始->程序->Microsoft SQL Server
2005->配置工具->SQL Server Configuration
Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER)
,并单击工具栏中的"启动服务"按钮把服务状态改为启动;
使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server
2005配置管理器"中的SQL Server
2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.
2.进行远程连接时,是否已允许远程连接.
SQL Server 2005 在默认情况下仅限本地连接.我们可以手动启用远程连接.在上面第一种方式中,找到Database
Engine,单击"远程连接",在右侧将"仅限本地连接(L)"改为"本地连接和远程连接(R)",并选中"同时使用TCP/IP和named
pipes(B)".
3.如果是远程连接,则还要查看连接数据库的语句是否正确,登录账户是否正确,密码是否正确等.