好吧,今天看了一集android视频, 40分钟的视频,看了3个小时。。。。
感觉自己好坑。
今天学到的知识点:
1、在app中,实现android手机的重启,要分情况看待。
(1)、 当我们具有了root权限的时候,直接调用 reboot命令即可,因为,android也是基于linux开发的系统,所以,内部一些linux的系统命令仍然有效。
具体的代码,具体的链接:http://stackoverflow.com/questions/5484535/runtime-exec-reboot-in-android, 关于这个问题stackoverflow上已经有很多人问过了。google了一下,几乎问题的答案都在stackoverflow上。
(2)、当我们没有root权限的时候,我们需要做的是:
A、app的签名必须与系统的签名一样,
B、在AndroidMainfest中,声明 android.permission.REBOOT的权限,同时,为application节点设置 android:sharedUserId="android.uid.system"
C、最后,我们只需要发送一个reboot的广播即可
<span style="white-space:pre"> </span> Intent intent = new Intent();
intent.setAction(Intent.ACTION_REBOOT);
intent.putExtra("nowait", 1);
intent.putExtra("interval", 1);
intent.putExtra("startTime", 1);
intent.putExtra("window", 0);
sendBroadcast(intent);
参考的链接: http://www.jb51.net/article/43409.htm , http://stackoverflow.com/questions/4966486/reboot-the-phone-on-a-button-click
2、 今天还了解到一个报错的原因, windowsLeaked,这个错误直接翻译,就是窗口泄露了。 乍一看,有点诡异,窗口怎么会泄露那。 查查百度,原来是,在关闭activity时,在aciivity上,仍然有其他的对话框没有关闭掉。 所以,在我们finish掉activity时,提前把其上的对话框关闭掉就行, 调用dismiss方法关闭之。