barriers / 阅读 / 详情

如何将activity装载进fragment

2023-07-17 11:52:23
共1条回复
我不懂运营

  Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面,并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。

  

  Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。当你在执行上述针对Fragment的事务时,你可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。

  

  当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layoutxml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。

  

  设计的哲学:

  

  为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,通过官方文档中的这张图片可以很明显地看到Fragment的好处:

  

  

  

  注:左边为平板,右边为手持设备。

  

  

  

  二、Fragment的生命周期:

  

  因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。

  

  如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。

  

  但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。

  

  当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。

  

  使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。

  

  每当创建一个Fragment时,首先添加以下三个回调方法:

  

  onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。

  onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。

  onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。

  将Fragment加载到Activity当中有两种方式:

  

  方式一:添加Fragment到Activity的布局文件当中

  方式二:在Activity的代码中动态添加Fragment

  第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。

  

  第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。

相关推荐

PreferenceFragment去完成设置页面

大多数时候我们都是这样去使用SharedPreferences 在app设置页面的开发中也会用到对设置项的保存,我们也会用到SharedPreferences去保存这些设置项,Android官方提供了更为简单针对设置页面使用SharedPreferences方法,那就是PreferenceActivity和PreferenceFragment. 下面来说下如何使用. PreferenceActivity主要针对3.0以前的版本,PreferenceFragment则更为灵活,其实使用方法上面两者大致一样,所以PreferenceActivity就不展开讲解,直接来看PreferenceFragment的使用 一般来说Fragment会要求去关联一个布局的layout, 但是在PreferenceFragment则不需要这样做,我们需要去自定义一个xml加入首选项(首选项就是配置项,官方称为首选项). xml根节点必须是一个PreferenceScreen元素. PreferenceScreen里面的子项都作为一个独立的控件显示在界面里,同时还具备保存属性. 显示效果如下 以上只展示了CheckBoxPreference和ListPreference,还有其它很多Preference控件,具体可以查阅官方文档有关Preference的字类. 如果设置项目过多,我们可以进行分类展示,有如下两种方式可以来实现. 加入PreferenceCategory的属性可以进行标题的划分. 使用PreferenceCategory属性可以划分子屏幕 有时候我们的设置项目并不是保存一个配置项,而是去跳转到一个新的画面. 我们可以使用如下配置来使得首选项跳转一个网页 当然你也可以配置显式的intent进行跳转,具体可以参见官方文档. 可以设置默认值给Preference控件 在进入设置页面可以调用 对默认值进行初始化应用, 这个接口最常用的地方就是去恢复设置. 通常还有种需求是点击一个首选项跳转到另外一个屏幕,当然这个功能也可以通过PreferenceScreen来完成,但是使用PreferenceScreen不能兼容平板的情况就像下面这样 如果要实现这种效果就要使用到hearders android:fragment用来标记点击后跳转的Fragment,extra用来传递参数,可以在Fragment中通过getArguments()来获取传递过来的bundle数据, 这个数据最大的作用就是用来在同一个preference fragment中加载不同的preference xml. 如果要显示这个标头文件的内容需要去重写onBuildHeaders方法. preference-headers这个标签只能支持3.0以后的版本,如果要兼容3.0以前的版本需要另外在写个xml作为兼容 再以如下方式加载 onBuildHeaders这个回调只会在Build.VERSION_CODES.HONEYCOMB(3.0系统)以上的版本调用。 另外我们必须要注意的一点,目前首选项不会再您调用registerOnSharedPreferenceChangeListener()时存储对监听器的强引用。但是,您必须存储对监听器的强引用,否则它将很容易被当作垃圾回收。 上面就是关于如何使用系统提供具有Preference功能的UI控件来打造一个设置界面. 更多详细关于自定义Preference等可以参考官方文档 https://developer.android.com/guide/topics/ui/settings
2023-07-17 11:31:231

怎么样得到引用的类属于那一个JAR包中的

一般根据引用的包名去查找 。。。。。。。。。。。。
2023-07-17 11:31:311

Android蓝牙协议-蓝牙配对与连接

蓝牙设备在连接前,会先检查设备是否已经配对过,如果没有则先配对,配对完成后,再开始连接。 蓝牙连接开始于设备列表 DeviceListPreferenceFragment的onPreferenceTreeClick方法。 DeviceListPreferenceFragment是蓝牙设备列表,点击其中一个蓝牙设备,开始蓝牙的连接过程。 调用onDevicePreferenceClick方法,接着调用BluetoothDevicePreference的onClicked方法,开始连接,以及连接前的状态检测。 获取mCachedDevice的绑定状态, pair方法会调用CachedBluetoothDevice.startPairing,启动配对 createBond调用BluetoothDevice.createBond方法,BluetoothDevice.createBond接着调用IBluetooth.createBond方法,下面会调用蓝牙远程服务。 和蓝牙扫描一样,实现IBluetooth接口的类是AdapterServiceBinder, AdapterServiceBinder实现IBluetooth.Stub接口,并且是AdapterService的私有内部类, AdapterServiceBinder接受事件,都会转交AdapterService处理 ,所以IBluetooth.createBond方法会调用AdapterService.createBond方法。 createBond方法会检查一下远程设备属性信息,再次取消蓝牙扫描任务,将配对任务转交mBondStateMachine,由状态机处理该信息。 BondStateMachine状态机的初始状态是StableState,所以BondStateMachine.CREATE_BOND由StableState处理,StableState在processMessage中调用BondStateMachine.createBond方法 createBondNative方法实现com_android_bluetooth_btservice_AdapterService.cpp中
2023-07-17 11:32:081

如何在Fragment中使用PreferenceFragment

public FragmentSetup() { // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_setup, container, false);}@Overridepublic void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // Load the preferences from an XML resource
2023-07-17 11:32:201

如何查阅这个东西:preferencefragment。我不要解释,我只要怎么能查出来,它是android3.0后加上的。

方法一:将这个源码jar文件导入到eclipse项目,ctrl+鼠标点击,就能看到这个类的说明了。另一种方法是打开3.0以上的Android API文档选择Reference---往下拉找到android.preference
2023-07-17 11:32:281

android PreferenceFragment 切换语言crash

切换语言时fragment初始化失败,之前遇到过这个BUG。应该是fragment内容已经被释放,但是activity里面的fragment对象还存在。所以你再初始化的时候要判断一下Fragment的内容是否正常。isDetached()这个函数 好像。。记不太清了
2023-07-17 11:32:351

如何在fragment中使用preferencefragment

public FragmentSetup() { // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_setup, container, false);}@Overridepublic void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // Load the preferences from an XML resource}
2023-07-17 11:32:421

怎样实现从一个frgment跳转到另一个preferencefragment

不行的,fragment是基于activity的,我用了后的理解是,它就像是相当于activity布局中的一个View,一个activity可以有多个View(fragment)。你要实现用intent的跳转,必须是要通过activity跳activity的,new Intent的时候,里面两个参数很明确的,一个是第一个参数是Context,fragemnt显然不行。
2023-07-17 11:32:491

在fragment怎么用getlayoutinflater

用了一个FragmentActivity作为主界面,包含了三个Fragment,实现了一个滑动的效果。现在我想讲其中一个Fragment,作为一个设置的界面,所以我想使用PreferenceFragment来实现。如下代码:一、FragmentActivity代码:Java code?package huahua.viewpager;import java.util.ArrayList;import android.os.Bundle;import android.preference.PreferenceFragment;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.app.FragmentTransaction;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.PagerTitleStrip;import android.support.v4.view.ViewPager;import android.util.Log;public class MainActivity extends FragmentActivity { private ViewPager m_vp; private fragment1 mfragment1; private fragment2 mfragment2; private fragment3 mfragment3; private ArrayList<Fragment> fragmentList;//页面列表 ArrayList<String> titleList = new ArrayList<String>();//标题列表 //通过pagerTabStrip可以设置标题的属性 private PagerTabStrip pagerTabStrip; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.v("huahua", "MainActivity-->onCreate()"); m_vp = (ViewPager)findViewById(R.id.viewpager); pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab); mfragment1 = new fragment1(); mfragment2 = new fragment2(); mfragment3 = new fragment3(); fragmentList = new ArrayList<Fragment>(); fragmentList.add(mfragment1); fragmentList.add(mfragment2); fragmentList.add(mfragment3); titleList.add("第一页 "); titleList.add("第二页"); titleList.add("第三页 "); m_vp.setOffscreenPageLimit(0); m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager())); //设置下划线的颜色 pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark)); //设置背景的颜色 pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark)); } public class MyViewPagerAdapter extends FragmentPagerAdapter{ public MyViewPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } @Override public Fragment getItem(int arg0) { return fragmentList.get(arg0); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return titleList.get(position); } }}这个是其中的一个Fragment,我想在这个Fragment页面上实现PreferenceFragment的效果,但是这样做行不通,Java code?1getActivity().getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragement()).commit();这行代码以及下面的PrefsFragement静态类都是我期望实现的。真的不知道如何解决了。求教各位,万分感激。这个Fragment和PreferenceFragment并不是继承关系,这里的Fragment使用的是android.support.v4.app.Fragment下面的Fragment。Java code?package huahua.viewpager;import android.os.Bundle;import android.preference.PreferenceFragment;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class fragment3 extends Fragment{ private View mMainView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.v("huahua", "fragment3-->onCreate()"); LayoutInflater inflater = getActivity().getLayoutInflater(); mMainView = inflater.inflate(R.layout.fragment3, (ViewGroup)getActivity().findViewById(R.id.viewpager), false); getActivity().getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragement()).commit();//希望添加的 } public static class PrefsFragement extends PreferenceFragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.v("huahua", "fragment3-->onCreateView()"); ViewGroup p = (ViewGroup) mMainView.getParent(); if (p != null) { p.removeAllViewsInLayout(); Log.v("huahua", "fragment3-->移除已存在的View"); } return mMainView; }}
2023-07-17 11:32:571

android preferencescreen走哪个intent

  addPreferencesFromResource(R.xml.setting_preference);   因为最近的项目我都要把程序的资源文件都放到另一个apk中。而上面这个方法中只能传本地的或系统的资源id。那么我就找到了类似的方法:addPreferencesFromIntent(Intent intent);百度goolge了一下发现都是没有这个方法的例子只有搜索google的里面的api:   public void addPreferencesFromIntent (Intent intent)   Since: API Level 1   This method is deprecated. This function is not relevant for a modern fragment-based PreferenceActivity.   Adds preferences from activities that match the given Intent.   Parameters   intent   The Intent to query activities.   这样介绍就很简单了,只是让我们去查询activities。没有说明xml是什么给的。没办法我只能去看源码,看他们是什么解析Intent的,那我就给出一个可用的intent。   因为是继承PreferenceFragment的,我就从源码找到frameworks/base/core/java/android/preference/PreferenceFragment.java这个类:   view plaincopy to clipboardprint?   <span style="white-space:pre"> </span>public void addPreferencesFromIntent(Intent intent) { requirePreferenceManager(); setPreferenceScreen(mPreferenceManager.inflateFromIntent(intent, getPreferenceScreen())); }   <span style="white-space:pre"> </span>public void addPreferencesFromIntent(Intent intent) { requirePreferenceManager(); setPreferenceScreen(mPreferenceManager.inflateFromIntent(intent, getPreferenceScreen())); } 然后这里又用到了mPreferenceManager.inflateFromIntentt(intent, getPreferenceScreen()),那么在找到这个类frameworks/base/core/java/android/preference/PreferenceManager.java:   view plaincopy to clipboardprint?   <span style="white-space:pre"> </span>PreferenceScreen inflateFromIntent(Intent queryIntent, PreferenceScreen rootPreferences) { final List<ResolveInfo> activities = queryIntentActivities(queryIntent); final HashSet<String> inflatedRes = new HashSet<String>(); for (int i = activities.size() - 1; i >= 0; i--) { final ActivityInfo activityInfo = activities.get(i).activityInfo; final Bundle metaData = activityInfo.metaData; if ((metaData == null) !metaData.containsKey(METADATA_KEY_PREFERENCES)) { continue; } // Need to concat the package with res ID since the same res ID // can be re-used across contexts final String uniqueResId = activityInfo.packageName + ":" + activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES); if (!inflatedRes.contains(uniqueResId)) { inflatedRes.add(uniqueResId); final Context context; try { context = mContext.createPackageContext(activityInfo.packageName, 0); } catch (NameNotFoundException e) { Log.w(TAG, "Could not create context for " + activityInfo.packageName + ": " + Log.getStackTraceString(e)); continue; } final PreferenceInflater inflater = new PreferenceInflater(context, this); final XmlResourceParser parser = activityInfo.loadXmlMetaData(context .getPackageManager(), METADATA_KEY_PREFERENCES); rootPreferences = (PreferenceScreen) inflater .inflate(parser, rootPreferences, true); parser.close(); } } rootPreferences.onAttachedToHierarchy(this); return rootPreferences; }   <span style="white-space:pre"> </span>PreferenceScreen inflateFromIntent(Intent queryIntent, PreferenceScreen rootPreferences) { final List<ResolveInfo> activities = queryIntentActivities(queryIntent); final HashSet<String> inflatedRes = new HashSet<String>(); for (int i = activities.size() - 1; i >= 0; i--) { final ActivityInfo activityInfo = activities.get(i).activityInfo; final Bundle metaData = activityInfo.metaData; if ((metaData == null) !metaData.containsKey(METADATA_KEY_PREFERENCES)) { continue; } // Need to concat the package with res ID since the same res ID // can be re-used across contexts final String uniqueResId = activityInfo.packageName + ":" + activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES); if (!inflatedRes.contains(uniqueResId)) { inflatedRes.add(uniqueResId); final Context context; try { context = mContext.createPackageContext(activityInfo.packageName, 0); } catch (NameNotFoundException e) { Log.w(TAG, "Could not create context for " + activityInfo.packageName + ": " + Log.getStackTraceString(e)); continue; } final PreferenceInflater inflater = new PreferenceInflater(context, this); final XmlResourceParser parser = activityInfo.loadXmlMetaData(context .getPackageManager(), METADATA_KEY_PREFERENCES); rootPreferences = (PreferenceScreen) inflater .inflate(parser, rootPreferences, true); parser.close(); } } rootPreferences.onAttachedToHierarchy(this); return rootPreferences; } 从上面的代码我们就知道要从intent中获取一组activity。通过 activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES)我们知道就是从activity拿的<meta-data 这些数据,那么我们在AndroidManifest.xml中eclipse提示的<meta-data只有三个属性:   那么我么就不难得出结论<meta-data 中的nane就是METADATA_KEY_PREFERENCES,而xml就是resource。   接下来还有一个问题就是METADATA_KEY_PREFERENCES的值是多少。搜一下在PreferenceManager.java中有如下定义:   view plaincopy to clipboardprint?   public static final String METADATA_KEY_PREFERENCES = "android.preference";   public static final String METADATA_KEY_PREFERENCES = "android.preference"; 知道了以上原理我们来验证一下:   新建一个工程,在里面的activity标签中加<meta-data,如下:   view plaincopy to clipboardprint?   <span style="white-space:pre"> </span><activity android:name="com.winca.style.defaultskin.RadioReadSettingXMLActivity" android:icon="@drawable/radio" android:label="@string/radio_app_name" > <meta-data android:name="android.preference" android:resource="@xml/setting_preference"/> </activity>   <span style="white-space:pre"> </span><activity android:name="com.winca.style.defaultskin.RadioReadSettingXMLActivity" android:icon="@drawable/radio" android:label="@string/radio_app_name" > <meta-data android:name="android.preference" android:resource="@xml/setting_preference"/> </activity> 这个xml就是从我们程序中拷贝多来放到新建的工程中的。   原来我们工程用的addPreferencesFromResource(R.xml.setting_preference);这语句,我们这样替换:   view plaincopy to clipboardprint?   <pre name="code" class="java"><span style="white-space:pre"> </span>Intent xmlIntent = new Intent(); ComponentName component = new ComponentName("com.winca.style.defaultskin","com.winca.style.defaultskin.RadioReadSettingXMLActivity"); xmlIntent.setComponent(component); addPreferencesFromIntent(xmlIntent);   <pre name="code" class="java"><span style="white-space:pre"> </span>Intent xmlIntent = new Intent(); ComponentName component = new ComponentName("com.winca.style.defaultskin","com.winca.style.defaultskin.RadioReadSettingXMLActivity"); xmlIntent.setComponent(component); addPreferencesFromIntent(xmlIntent); 运行一下,正常显示xml里面的。问题解决。
2023-07-17 11:33:051

什么代码能直接屏蔽所有系统通知

如果是手机系统的话,在设置里有通知选项,可以在通知里把你不想要接收的App的通知功能关掉。
2023-07-17 11:33:242

activity和fragment的生命周期状态各有哪些?状态之间如何变换

Fragment的生命周期初探:因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。每当创建一个Fragment时,首先添加以下三个回调方法:onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。 onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。 onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。将Fragment加载到Activity当中有两种方式:方式一:添加Fragment到Activity的布局文件当中 方式二:在Activity的代码中动态添加Fragment(荐)第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。
2023-07-17 11:33:321

android 怎么在自定义控件中获取控件所在fragment的实例

在构造方法,或者set方法等注入fragment,类似很多自定义控件使用Context一样。可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)。
2023-07-17 11:33:401

andriod的PreferenceFragment类的addPreferencesFromResource不管用

的起薪和平均水平是多少
2023-07-17 11:33:471

Android Support Library解释

tags: android support library Google官方 开发者网站 有一篇文章专门解释了这一系列Support Library,网络上的很多文章都翻译自它。文章地址在 这里 。 下面是我自己的一些总结。 最主要的原因就是: 为了能在低版本的Android系统上使用高版本的SDK才具有的新功能、新特性 。比如,Fragment,ActionBar、Material Design风格等。 Google把这些高版本SDK才具有的新特性打包进Support Library,当开发者想使用这些新特性,又需要兼容老版本Android系统时,就可以引入Support Library。当然,这些打包进Support Library的新特性,全部都被完整的包含在了最新的Android SDK中。所以如果开发者的App仅支持最新系统,也可以不引入Support Library。 Google为了使开发者可以方便的引入Support Library,把它们做成了依赖包的形式,通过Gradle可以很方便的引入,例如: 除了最主要的原因,还有其他几点原因,可以参考Google 官方文档 对此的解释。 Android Support Library只是一个名称,并不是一个真正的library,它由多个具体的library集合而成。每个单独的library都包含一些新特性,可以支持不同版本的Android系统,可以被单独引入。 一般来说,每个Support Library包含的新特性都是不同的,它们交叉互补,以插件化的形式提供对低版本系统的支持。 支持Android 1.6(API level 4)及以上。它包含了最多的新特性,典型的有: 引入: 支持Android 2.1(API level 7)及以上。由一系列独立的v7包组成,可以分别引入。 依赖 v4 Support Library 。现在在Android Studio中新建一个工程,默认就会引入这个library。而它又依赖v4 Support Library,所以v4 Support Library也会被默认引入工程。 这个库主要的作用就是提供对 Action Bar 的支持。 使用: 提供了 CardView 控件,一种Material Design风格的卡片形控件。 使用: 提供了 GridLayout 类,一种网格布局控件,与LinearLayout,RelativeLayout同级。 使用: 官方文档的解释是:用来控制多媒体流的分发。但是实际中基本很少用到,有兴趣的可以参考 官方文档 。 提供了 Palete 类,可以从一张图片中提取出它的主色调。 使用: 提供了 RecyclerView 类,一个类似ListView,但是比ListVIew性能更好的控件。一般用来展示大量数据,可以完全替代ListView。 使用: 提供了一系列API,用于支持创建Material Design风格的首选项页面。官方有一篇 指导文档 ,但是感觉虽然方便了开发,但是灵活性和可定制性不高。 使用: 它是Android官方用来方便开发者在应用中实现 Android Material Design 风格的UI而提供的支持库,里面有很多Android官方提供的Material Design风格的 轮子 。主要的轮子有: Google开发者博客上还有一个 视频 ,专门介绍了这个库。 使用: 提供支持多个dex文件的功能,解决方法65536的限制。 使用: 支持Android 2.2(API level 8)及以上。 感觉一般的应用级开发用不到(也可能是我太弱鸡了),具体还是参考 官方文档 吧。 支持Android 3.2(API level 13)及以上。这个library是为在平板上使用 Fragment 而设计的,现在应该几乎用不到了。 使用: 主要是添加了首选项Fragment类- PreferenceFragment 和首选项接口- PreferenceFragment.OnPreferenceDisplayDialogCallback , PreferenceFragment.OnPreferenceStartFragmentCallback , PreferenceFragment.OnPreferenceStartScreenCallback 。与 v7 Preference Support Library 搭配使用,参见 官方文档 。 使用: 提供对注解的支持。 使用: 提供了一些 API ,用于添加和管理自定义tab。 使用: 添加了百分比布局控件,如 PercentFrameLayout , PercentRelativeLayout 。 使用: 提供了在电视平台上,构建首选项页面的接口,作用类似于 v7 Preference Support Library 与 v14 Preference Support Library 。 使用: 提供了在电视平台上,用于构建用户界面的一系列重要控件。以下是一些关键的类: 使用: 在电视平台上,添加了用于做内容推荐的一系列 API 。 使用:
2023-07-17 11:33:541

什么是英文常用单词?

最常用英语单词有accent 加重、accurate 精确、acquire 获得、action 操作,运算、adjust 调整、ambient light 环境光、angle 角度、anti-aliased 平滑处理 arbitrary 任意的等。1常用英语单词1000Aaccent 加重accurate 精确acquire 获得action 操作,运算adjust 调整ambient light 环境光angle 角度anti-aliased 平滑处理arbitrary 任意的arrange 排列arrow 箭头artistic 艺术的,美术的Bbalance 平衡bar 条,栏base 基准batch 批量,成批bevel 使成斜角,斜切bilinear 双线性插值bitmap 位图,点阵图blend 混合,调和blur 模糊bold 加粗border 边界,边框brightness 亮度brush 画笔,笔形build 建造,创立burn 焦化,烧黑button 按钮Ccache 快速存储器calculation 计算calibrate 校准,校验canvas 画布carve 镌刻cascade 层叠chalk 粉笔,作记号channel 通道,频道charcoal 炭笔画chrome 铬黄,铬合金classic 经典的click (单)击(鼠标)clipboard 剪贴版clone 复制cloud 云彩command 命令content 内容continue 连续的,持续的contour 轮廓线,周线contract 收缩,缩小contrast 反差,对比coordinate 协调,协作craquelue 裂纹crayon 蜡笔crop 剪裁crystallize 水晶curl 螺旋状物,卷曲的current 当前的cursor 光标,游标curve 曲线custom 自定义Ddarken 较黑的,使变黑daubs 涂抹define 定义design 设计destination 目标,对象difference 区别,差异diffuse 散乱扩散displace 转移distort 扭曲document 文档,文件dodge 加亮drop shadow 投影duotone 双色调duplicate 复制dust 灰尘,尘土Eedge 边界effect 效果作用embed 嵌入emboss 浮雕enlarge 放大equalize 平均化expand 扩充,扩展export 输出extrude 突出eyedropper 吸管Ffacet 刻面feather 晕开,羽化fill 填充flare 张开,闪耀flatten 变平flip 翻转fragment 碎片fresco 壁画Ggamut 整个领域general 普通的glass 玻璃杯glow 发光gradient 渐变grain 纹理graphics 图形grayscale 灰阶,灰度图grid 坐标格子group 群,组grow 成长guide 参考,参考线Hhalftone 半色调histogram 柱状图horizontal 水平hue 色相Iicon 图标image 图像import 输入index 索引Inner 内部的input 输入intensity 亮度inverse 相反invert 反转,反相Kkeyboard 键盘kilometre 千米,公里Llens 凹凸透镜,焦距level 级别,色阶light 光线location 定位Mmagic 有魔法的magic wand 魔棒mask 遮罩,掩膜maximum 最大值memory 记忆,内存merge 合并,融合minimum 最小值mode 模式,方式modify 修改,改变monitor 显示器,监视器monochrome 单色的mosaic 马塞克motion 运动multichannel 多通道模式Nnegative 负片,负像noise 噪音,糙点numeric 数字化的;分数Ooffset 位移,偏移option 选项ornament 装饰outline 轮廓,外形Ppalette 调色板parameter 参数,参变量paste 粘贴pastel 彩色粉笔,蜡笔画patchwork 补教,式样path 路径pattern 图案perspective 透视pinch 极化,凹陷或突起plug-ins 插件(滤镜)pointillize 乱点描述polar coordinates 极坐标poster 招贴画posterize 色调分离preference 偏好设定preview 预览previous 前一个pseudo 假的purge 消除Rradial 圆形range 范围,领域relief 救济,援救render 渲染,粉刷,上色reticulation 网状物revert 还原,复原ripple 涟漪,波纹rotate 旋转rough 粗略ruler 标尺Ssaturation 色彩饱和度scale 缩放scratch 暂时,临时screen 屏幕seam 缝,接缝selection 选择,工作区selective 精心挑选的separation 分离,分开sharpen 锐化shear 扭曲变形similar 相似的sketch 草图,画稿skew 偏斜的smart 灵活的,精巧的smooth 平滑的smudge 玷污,污点snapshot 快照solarize 中途曝光spatter 溅,洒落sponge 海绵spray 喷,喷涂stain 着色,染色stamp 盖章,盖印status 状态,状况stereo 立体声stroke 笔划,打击swirl 漩涡,卷状物Ttexture 质地,纹理threshold 两阶调化tile 平铺,窗口并联trace 跟踪,镂边trail 痕迹,足迹transform 转变,变形transparency 透明度twirl 卷曲,快速旋转Uultimate 最终的uncommon 罕见,非凡的units 单位,单元Vvertex 顶点,最高点vertical 垂直的video 视频,电视view 视图,显示方式virus 病毒visible 可见的,明显的visual 视觉的vogue 流行,时尚volume (磁盘)容量vortex 漩涡Wwatercolor 水彩watermark 水印wave 波纹,波动welder 焊接workstation 工作站wrinkle 皱纹Zzero 零zigzag 锯齿zoom in 放大zoom out 缩小2背英语单词的最好方法第一步,准备工作:准备若干张小纸条,数目由您要记忆的单词数来决定,用于写您要记忆的英语单词,原则上每张纸条只写一个单词;准备好30个小纸盒子,第1个盒子存放今天学习与复习的单词,第2个盒子存放明天复习的单词... ...,依次类推,第30个盒子存放第30天复习的单词。第二步,添加新单词:每天把220个新单词写成条子放在盒子1中(如果您想多学可以多放点,想少学点也可以少放点),同时把盒子2的单词放到盒子1中,把盒子3的单词放在盒子2中... ...,依次类推。第三步,学习与复习:开始学习盒子1中的单词,同时根据自己的遗忘参数值决定刚学过的单词放在2 -- 30中的哪个盒子中。根据自己复习效果调整自己的遗忘参数值。最好的办法就是应用“艾宾浩斯--满爱镇微分记忆算法模型”。该模式真正做到记忆最轻松,复习次数最少,每次复习花费的时间最少。该模型可以自动适应于您的遗忘规律,对每个人的每个记忆项,动态维护一套遗忘参数,并且是在记忆的过程中进行动态维护,在最需要复习的时候提醒您进行复习,直到记忆熟悉为止。采用该模型进行记忆,比普通传统的方法更轻松、更快捷、更牢固,您根本不需要操心什么时候学习新单词,什么时候复习应该复习的单词,一切工作由系统自动完成,是传统模式无法比拟的。
2023-07-17 11:34:011

Android系统框架参数——求大神注释

这。。这 我估计只有系统开发者可以看懂
2023-07-17 11:34:092

android6.0在fragment中相机权限怎么动态获取

你要在某些地方把图片的地址保存起来,比如数据库,比如sharedpreference。切换的时候重新读取。
2023-07-17 11:34:431

sharedpreference无法读取按钮状态

this.getActivity()会可能返回null,所以你不能这样做。你需要放在onAttach(Activityactivity)里面进行preferences的初始化。
2023-07-17 11:34:501

高手指教一下华为路由器的路由配置命令?

路由器静态路由配置命令4.6.1 ip route配置或删除静态路由。[ no ] ip route ip-address{ mask | mask-length } { interfacce-name| gateway-address } [ preference preference-value] [ reject | blackhole ]【参数说明】ip-address和mask为目的IP地址和掩码,点分十进制格式,由于要求掩码32位中‘1"必须是连续的,因此点分十进制格式的掩码可以用掩码长度mask-length来代替,掩码长度为掩码中连续‘1"的位数。interfacce-name指定该路由的发送接口名,gateway-address为该路由的下一跳IP地址(点分十进制格式)。preference-value为该路由的优先级别,范围0~255。reject指明为不可达路由。blackhole指明为黑洞路由。【缺省情况】系统缺省可以获取到去往与路由器相连子网的子网路由。在配置静态路由时如果不指定优先级,则缺省为60。如果没有指明reject或blackhole,则缺省为可达路由。【命令模式】全局配置模式【使用指南】配置静态路由的注意事项:当目的IP地址和掩码均为0.0.0.0时,配置的缺省路由,即当查找路由表失败后,根据缺省路由进行包的转发。对优先级的不同配置,可以灵活应用路由管理策略,如配置到达相同目的地的多条路由,如果指定相同优先级,则可实现负载分担;如果指定不同优先级,则可实现路由备份。在配置静态路由时,既可指定发送接口,也可指定下一跳地址,到底采用哪种方法,需要根据实际情况而定:对于支持网络地址到链路层地址解析的接口或点到点接口,指定发送接口即可;对于NBMA接口,如封装X.25或帧中继的接口、拨号口等,支持点到多点,这时除了配置IP路由外,还需在链路层建立二次路由,即IP地址到链路层地址的映射(如dialermap ip、x.25 map ip或frame-relay map ip等),这种情? 配置静态路由不能指定发送接口,应配置下一跳IP地址。【举例】配置缺省路由的下一跳为129.102.0.2。Quidway(config)#ip route 0.0.0.0 0.0.0.0 129.102.0.2【相关命令】show ip route,show ip route detail,showip route static4.6.2 show iproute显示路由表摘要信息。show ip route【命令模式】特权用户模式【使用指南】该命令输出以列表方式显示路由表,每一行代表一条路由,内容包括:目的地址/掩码长度协议优先级度量值下一跳输出接口【举例】Quidway#show ip routeRouting Tables:Destination/Mask Proto Pref Metric Nexthop Interface127.0.0.0/8 Static 0 0 127.0.0.1 127.0.0.1(LO0)127.0.0.1/32 Direct 0 0 127.0.0.1 127.0.0.1(LO0)138.102.128.0/17 Direct 0 0 138.102.129.7 138.102.129.7(EN0)202.38.165.0/24 Direct 0 0 202.38.165.1 202.38.165.1(SL1)【相关命令】ip route,show ip route detail,show iproute static4.6.3 showip route detail显示路由表详细信息show ip route detail【命令模式】特权用户模式【使用指南】该命令输出信息帮助用户进行路由方面的故障诊断。【举例】Quidway#show ip route detailRoute state descriptionNoAdv: do not advertiset Int: AS Interior routeExt: AS External route Del: route to be deletedActive: current route Retain: route retains in the routingtableRej: rejecting route Black: black hole routeRouting Tables:Generate Default: no+ = Active Route, - = Last Active, * = BothDestinations: 4 Routes: 4Holddown: 0 Delete: 9 Hidden: 0**Destination: 127.0.0.0 Mask: 255.0.0.0Protocol: *Static Preference: 0NextHop: 127.0.0.1 Interface: 127.0.0.1(LO0)State: $#@60;NoAdv Int Active Retain Rej$#@62;Age: 19:31:06 Metric: 0/0**Destination: 127.0.0.1 Mask: 255.255.255.255Protocol: *Direct Preference: 0NextHop: 127.0.0.1 Interface: 127.0.0.1(LO0)State: $#@60;NoAdv Int Active Retain$#@62;Age: 114:03:05 Metric: 0/0Holddown路由指的是:一些distance vector 路由协议(如RIP),为了避免错误路由的扩散,提高路由不可达信息的快速准确传播,而采用的一种路由发布策略。它往往在一段时间间隔内固定地发布某条路由,而不管当前实际找回的到同一目的的路由发生了什么变化。其细节参见具体的路由协议。在路由表统计中显示的是当前被Holddown的路由数目。有些路由由于某种原因(如接口Down)暂时不可用,但是又不希望被删除,我们把这种路由隐藏起来。以便以后能重新恢复在路由表统计中显示的是当前被隐藏的路由数目。【相关命令】ip route,show ip route,show ip route static4.6.4 showip route static显示静态路由表。show ip route static【命令模式】特权用户模式【使用指南】根据该命令输出信息,可以帮助用户确认对静态路由的配置是否正确。【举例】Quidway#show ip route staticStatic routes for family INET: (* indicates gateway(s)in use)1.2.3.0/24 pref 60 $#@60;Int$#@62; intf EN0127.0.0.0/8 pref 0 $#@60;NoAdv Int Retain Rej$#@62; intf 127.0.0.1以列表的方式显示静态路由表,每一行代表一条静态路由,从左到右依次为:目的地址/掩码长度优先级$#@60;状态参数$#@62;输出接口和下一跳【相关命令】ip route,show ip route,show ip route detail路由器IP性能配置命令4.5.1 clear ip counters清除IP统计信息。clear ip counters【命令模式】特权用户模式【使用指南】在某些特殊情况下,需要清除IP统计信息,重新进行统计。【举例】清除IP统计信息。Quidway#clear ip counters【相关命令】show ip interface,show ip traffic4.5.2 ifquelen ip配置IP接收队列长度。ifquelen ip queue-length【参数说明】queue-length为接口队列长度。【命令模式】全局配置模式【使用指南】配置IP接收队列长度,会影响系统运行效率,最好在技术支持人员的指导下进行。【举例】配置IP的接收队列为70。Quidway(config)#ifquelen ip 70【相关命令】show ip interface4.5.3 ifquelen arp配置ARP接收队列长度。ifquelen arp queue-length【参数说明】queue-length为接口队列长度。【命令模式】全局配置模式【使用指南】配置ARP接收队列长度,可能会影响到以太网口运行效率,最好在技术支持人员的指导下配置。【举例】配置ARP的接收队列长度为70。Quidway(config)#ifquelen arp 70【相关命令】show ip interface4.5.4 ip tcp header-compression允许或禁止接口上TC 文头压缩。[ no ] ip tcp header-compression【缺省情况】接口上缺省为禁止TCP报文头压缩。【命令模式】接口配置模式【使用指南】在低速广域网线路上运行PPP协议时,由于TCP报文头占全部传输数据的很大比例,这时可以对TCP报文头压缩以提高数据传输效率。【举例】在PPP接口Serial0上允许TCP报文头压缩。Quidway(config-if-Serial0)#ip tcp header-compression【相关命令】encapsulation ppp4.5.5 show ip cache显示IP路由缓冲。show ip cache【命令模式】特权用户模式【使用指南】显示IP最近使用过的路由,帮助用户进行故障诊断。【举例】Quidway#show ip cacheRoute to destination 129.102.100.141:Destination NetMask Type Interface GateWay129.102.100.141 255.255.255.255 direct Ethernet0上面显示信息表示最近刚使用过的路由是到达129.102.100.141的路由。该路由是一条直接路由,输出接口为Ethernet0。 【相关命令】ip route4.5.6 show ip interface显示IP接口信息。show ip interface [ interface-type interface-number ]【参数说明】interface-type为接口类型。interface-number为接口编号。【缺省情况】如果不指定接口,则缺省显示全部IP接口信息。【命令模式】特权用户模式【使用指南】该命令输出接口上全部与IP有关的信息,有助于故障诊断。【举例】Quidway#show ip interface serial 0Interface is Serial0, Index is 2ifFlags=8004 $#@60;NBMA,MULTICAST$#@62;protocol is x25 dte ietf, MTU is 1500, speed is 64000 bpsinput queue is 0/75/0 (current/max/drops)output queue is 0/75/0 (current/max/drops)0 packets input, 0 bytes, 0 multicasts0 input packets dropped, 0 no protocols, 0 input errors0 packets output, 0 bytes, 0 multicasts, 0 output errors上面显示信息表示接口Serial0 编号为2;处于NBMA模式,支持组播;该接口封装的链路层协议是X.25协议,最大传输单元是1500字节,传输速率为64000bps。再以下的信息主要反映了该接口报文的收发情况,比如说接收和发送队列的最大长度、当前队列中报文数和由于队列满而丢弃报文数,接收和发送的报文数,接收和发送的组播报文数,不能识别的报文数等等。【相关命令】show interface4.5.7 show ip traffic显示IP流量统计信息。show ip traffic【命令模式】特权用户模式【使用指南】该命令显示IP收发和拆包、组包的统计信息,有助于故障诊断。【举例】Quidway#show ip trafficIP statistics:Rcvd: 1370 total, 1349 local destination0 format errors, 0 checksum errors0 unknown protocol, 0 bad optionsFrags: 0 fragment rcvd, 0 fragment dropped0 reassembled, 0 timeouts0 fragmented, 0 couldnt fragment, 0 fragment sentSent: 359 generated, 0 forwarded, 0 raw ip packets0 dropped, 0 no route, 0 Compress failsICMP statistics:Rcvd: 0 format errors, 0 checksum errors0 redirects, 0 unreachable, 14 echo, 0 echo reply0 mask requests, 0 mask replies, 0 quench0 parameter, 0 timestamp, 0 info requestSent: 0 redirects, 0 unreachable, 0 echo, 14 echo reply0 mask requests, 0 mask replies, 0 quench0 parameter problem, 0 timestamp, 0 info reply以上显示信息包括:IP 统计信息:接收:接收到1664 个报文,其中1638 个报文送给上层协议,没有报文格式错,没有报文校验错,没有未知协议报文,没有报文选项错。分片:没有收到分片,没有丢弃分片,重装成功的分片数为0,超时分片为数为0;分组成功的报文数为0,不能被分组的报文数为0,被创建发送分片数为0。发送:产生报文470 个,被转发报文数为0,产生原始IP报文数为0,被丢弃报文数为0,无法路由的报文的报文数为0,压缩失败的报文数为0。ICMP统计信息:接收:接收到格式错报文数为0,校验字错报文数为0,重定向报文数为0,不可达报文数为0,echo请求报文16个, echo应答报文数为0,掩码请求报文数为0,掩码应答报文数为0,源站抑制报文数为0,参数错报文数为0,时间戳请求报文数为0,信息请求报文数为0。发送:发送重定向报文数为0,目的站不可达报文数为0,echo请求报文数为0,echo应答报文16 个,掩码请求报文数为0,掩码应答报文数为0,源站抑制报文数为0,参数错报文数为0,时间戳请求报文数为0,信息应答报文数为0。【相关命令】show interface,show ip interface,clear ip counters4.5.8 show tcp brief显示TCP连接状态。show tcp brief【命令模式】特权用户模式【使用指南】该命令显示全部TCP连接状态,使用户随时监控TCP连接。【举例】Quidway#show tcp briefLocalAddress LocalPort ForeignAddress ForeignPort State129.102.100.142 23 129.102.001.092 1038 ESTABLISHED000.000.000.000 23 000.000.000.000 0 LISTEN以上显示信息表示:一个TCP连接已经建立,该TCP连接的本地IP地址为129.102.100.142,本地端口号为23,远地IP地址为129.102.1.92,远地端口号为1038,另外本地有一个对23号端口监听的服务器。【相关命令】show client4.5.9 tcp finwait-time配置TCP finwait定时器。tcp finwait-time time-value【参数说明】time-value为TCP finwait定时器值,单位秒,范围76~3600。【缺省情况】TCP finwait定时器缺省为675秒。【命令模式】全局配置模式【使用指南】当TCP的连接状态由FIN_WATI_1变为FIN_WAIT_2时启动finwait定时器。若finwait定时器超时前仍未收到FIN报文,则TCP连接被终止。对该参数的配置最好在技术支持人员的指导下进行。【举例】配置TCP finwait定时器的值为675秒。Quidway(config)#tcp finwait-time 675【相关命令】tcp synwait-time,tcp window-size4.5.10 tcp synwait-time配置TCP synwait定时器。tcp synwait-time time-value【参数说明】time-value为TCP synwait 定时器值,单位秒,范围2~600。【缺省情况】TCP synwait定时器缺省值为75秒。【命令模式】全局配置模式【使用指南】当发送syn报文时,TCP启动synwait定时器,若synwait超时前未收到回应报文,则TCP连接将被终止。对该参数的配置最好在技术支持人员的指导下进行。【举例】配置TCP synwait定时器为75秒。Quidway(config)#tcp synwait-time 75【相关命令】tcp finwait-time,tcp window-size4.5.11 tcp window-size配置面向连接Socket的收发缓冲区大小。tcp window-size window-size【参数说明】window-size为面向连接Socket的收发缓冲区大小,单位K字节,范围1~32。【缺省情况】面向连接Socket的收发缓冲区大小缺省为4K字节。【命令模式】全局配置模式【使用指南】对该参数的配置最好在技术支持人员的指导下进行。【举例】配置面向连接Socket的收发缓冲区大小为4K字节。Quidway(config)#tcp window-size 4【相关命令】tcp finwait-time,tcp synwait-time【end】
2023-07-17 11:35:091

如何通过反射使用BluetoothHeadset类

Usbsetting 中tethering 设置流程一 资源位置及入口文件USBtethering, usb_tethering_button_textXml/tether_prefs.xml------usb_tether_settings,布局文件packages/apps/Settings/AndroidManifest.xml<!-- Keep compatibility with oldshortcuts. --><activity-aliasandroid:name=".TetherSettings"android:label="@string/tether_settings_title_all"android:clearTaskOnLaunch="true"android:exported="true"android:targetActivity="Settings$TetherSettingsActivity"><meta-dataandroid:name="com.android.settings.FRAGMENT_CLASS"android:value="com.android.settings.TetherSettings"/><meta-dataandroid:name="com.android.settings.TOP_LEVEL_HEADER_ID"android:resource="@id/wireless_settings"/><meta-dataandroid:name="com.android.settings.PARENT_FRAGMENT_TITLE"android:resource="@string/wireless_networks_settings_title"/><meta-dataandroid:name="com.android.settings.PARENT_FRAGMENT_CLASS"android:value="com.android.settings.Settings$WirelessSettingsActivity"/></activity-alias>TetherSettings.java二 触发流程2.1TetherSettings.javapackages/apps/Settings/src/com/android/settings/TetherSettings.javaonPreferenceTreeClickSXlog.d(TAG,"onPreferenceTreeClick - setusbTethering(" + newState + ")mUsbTethering: " + mUsbTethering);setUsbTethering(true);下面是设置时抓取的log日志D/TetherSettings( 543): onPreferenceTreeClick -setusbTethering(true) mUsbTethering: trueD/Tethering(271): setUsbTethering(true)D/UsbDeviceManager( 271):setCurrentFunction(rndis) default: falseW/UsbDeviceManager( 271): handleMessage:2W/UsbDeviceManager( 271): setEnabledFunctions:functions = rndisW/UsbDeviceManager( 271): setEnabledFunctions,mDefaultFunctions: mtp,adbW/UsbDeviceManager( 271): setEnabledFunctions,mCurrentFunctions: mtp,adbD/UsbDeviceManager( 271): setEnabledFunctions,mSettingFunction: mtp,adbW/UsbDeviceManager( 271): containsFunction,functions: rndisW/UsbDeviceManager( 271): containsFunction,function: adbW/UsbDeviceManager( 271): containsFunctionindex: -1W/UsbDeviceManager( 271): addFunction,functions: rndisW/UsbDeviceManager( 271): addFunction, function:adbW/UsbDeviceManager( 271): containsFunction,functions: rndisW/UsbDeviceManager( 271): containsFunction,function: acmW/UsbDeviceManager( 271): containsFunctionindex: -1W/UsbDeviceManager( 271): containsFunction,functions: rndis,adbW/UsbDeviceManager( 271): containsFunction,function: acmW/UsbDeviceManager( 271): containsFunctionindex: -1D/UsbDeviceManager( 271):setUsbConfig(none)W/UsbDeviceManager( 271): setUsbConfig, config:nonepublicboolean onPreferenceTreeClick(PreferenceScreenscreen, Preference preference) {ConnectivityManager cm =(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);if(preference == mUsbTether) {if(!mUsbTethering) {booleannewState = mUsbTether.isChecked();mUsbTethering = true;mUsbTetherCheckEnable = false;mUsbTether.setEnabled(false);SXlog.d(TAG,"onPreferenceTreeClick - setusbTethering(" + newState + ")mUsbTethering: " + mUsbTethering);if(newState) {startProvisioningIfNecessary(USB_TETHERING);} else{setUsbTethering(newState);}} else{returntrue;}} else if(preference == mBluetoothTether) {private voidsetUsbTethering(booleanenabled) {ConnectivityManager cm =(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);if(cm.setUsbTethering(enabled) !=ConnectivityManager.TETHER_ERROR_NO_ERROR) {mUsbTether.setChecked(false);mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);return;}mUsbTether.setSummary("");}2.2ConnectivityManager.javaframeworks/base/core/java/android/net/ConnectivityManager.javaprivatefinal IConnectivityManagermService;public intsetUsbTethering(booleanenable) {try{returnmService.setUsbTethering(enable);} catch(RemoteException e) {returnTETHER_ERROR_SERVICE_UNAVAIL;}}manager 和service有一个对应关系,固定的规则。 manager是为了sdk诞生的,方便app开发者调用。其实可以直接调用service,如mountservice是没有mountmanager的。service是在系统起来是就被android系统启动的,而manager是后期有需要时实例化起来的。Service的目录在:/frameworks/base/services/java/com/android/server/manager的目录在:frameworks/base/core/java/android2.3ConnectivityService.javaframeworks/base/services/java/com/android/serverprivateTethering mTethering;public intsetUsbTethering(booleanenable) {enforceTetherAccessPermission();if(isTetheringSupported()) {returnmTethering.setUsbTethering(enable);} else{returnConnectivityManager.TETHER_ERROR_UNSUPPORTED;}}2.4Tethering.javaframeworks/base/services/java/com/android/server/connectivity/Tethering.javapublic intsetUsbTethering(booleanenable) {UsbManager usbManager = (UsbManager)mContext.getSystemService(Context.USB_SERVICE);………………else{mUsbTetherRequested = true;usbManager.setCurrentFunction(UsbManager.USB_FUNCTION_RNDIS,false);}通过service,来获取manager,进行操作。这个tethering.java的构造函数publicTethering(Context context,INetworkManagementService nmService,INetworkStatsService statsService,IConnectivityManager connService, Looper looper){Context是获取全局信息的接口,2.5 UsbManager.java/frameworks/base/core/java/android/hardware/usb/UsbManager.javapublic void setCurrentFunction(Stringfunction, boolean makeDefault) {try {mService.setCurrentFunction(function,makeDefault);}catch (RemoteException e) {Log.e(TAG, "RemoteException insetCurrentFunction", e);}}2.6frameworks/base/services/java/com/android/server/usb$mengfd1@tablet-C:~/work/A2107/frameworks/base/services/java/com/android/server$cd usbmengfd1@tablet-C:~/work/A2107/frameworks/base/services/java/com/android/server/usb$lsUsbDeviceManager.java UsbHostManager.javaUsbService.java UsbSettingsManager.java/frameworks/base/services/java/com/android/server/usb/UsbService.javapublic void setCurrentFunction(String function, booleanmakeDefault) {mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USB,null);if(mDeviceManager != null) {mDeviceManager.setCurrentFunction(function,makeDefault);}else {throw new IllegalStateException("USB devicemode not supported");}}/frameworks/base/services/java/com/android/server/usb/UsbDeviceManager.javapublic void setCurrentFunction(Stringfunction, boolean makeDefault) {if(DEBUG) Slog.d(TAG, "setCurrentFunction(" + function + ") default:" + makeDefault);mHandler.sendMessage(MSG_SET_CURRENT_FUNCTION,function, makeDefault);}public void handleMessage(Message msg){caseMSG_SET_CURRENT_FUNCTION:String function =(String)msg.obj;boolean makeDefault = (msg.arg1 ==1);if (function != null&&function.equals(UsbManager.USB_FUNCTION_CHARGING_ONLY)){mSettingUsbCharging = true;SXlog.d(TAG, "handleMessage -MSG_SET_CURRENT_FUNCTION - USB_FUNCTION_CHARGING_ONLY -makeDefault: " + makeDefault);} else {mSettingUsbCharging = false;}setEnabledFunctions(function,makeDefault);SXlog.d(TAG, "handleMessage -MSG_SET_CURRENT_FUNCTION - function: " +function);break;private void setEnabledFunctions(Stringfunctions, boolean makeDefault) {private boolean setUsbConfig(String config) {SystemProperties.set("sys.usb.config",config);
2023-07-17 11:35:291

android,xml开发,下面的header干嘛用的?android:fragment又是什么?我在文档查不到?“org…ment"干什

header是用在PreferenceActivity里面的。你可以看看平板的系统选项,分别是左边的header对应右边的内容。只要是用在PreferenceActivity里面onBuildHeaders方法。
2023-07-17 11:35:361

怎么样得到引用的类属于那一个JAR包中的

ctrl+鼠标左键 点击该引用的类名,就能跳转到该类文件了,然后在顶栏就能看到类所在的JAR包目录例如:我想寻找下方的PreferenceFragment 是在哪个JAR包下步骤一:ctrl+鼠标左键点击PreferenceFragment 步骤二:此时跳转到了PreferenceFragment 所在的class文件,顶栏看到了该类所在的package步骤三:在左边项目栏--选择Project,然后点一下“2”,就会定位到包所在了,此时能看到preference下确实有PreferenceFragment类 (也可以Ctrl+左击 步骤二中 顶栏的android.preference,也能跳转到包目录)PS:若用的是Eclipse,一般执行步骤二就能看到JAR包目录了。关键点是:CTRL+鼠标左击 方法名 或 类名
2023-07-17 11:35:511

如何在Fragment中使用PreferenceFragment

public FragmentSetup() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflat...
2023-07-17 11:36:002

如何在Fragment中使用PreferenceFragment-CSDN论坛

public FragmentSetup() { // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_setup, container, false);}@Overridepublic void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // Load the preferences from an XML resource}
2023-07-17 11:36:081

android fragment相互切换的时候生命周期怎么走

Fragment的生命周期初探:因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。每当创建一个Fragment时,首先添加以下三个回调方法:onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。 onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。 onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。将Fragment加载到Activity当中有两种方式:方式一:添加Fragment到Activity的布局文件当中 方式二:在Activity的代码中动态添加Fragment(荐)第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。
2023-07-17 11:36:152

android fragment相互切换的时候生命周期怎么走

Fragment的生命周期初探:因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。每当创建一个Fragment时,首先添加以下三个回调方法:onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。 onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。 onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。将Fragment加载到Activity当中有两种方式:方式一:添加Fragment到Activity的布局文件当中 方式二:在Activity的代码中动态添加Fragment(荐)第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。
2023-07-17 11:36:471

android 怎么在自定义控件中获取控件所在fragment的实例

getFragmentManager().findFragmentById(id).getView().findViewById(id) 这样应该就可以了
2023-07-17 11:36:552

继承PreferenceActivity,报需要验证fragment是否有效

@Overrideprotected boolean isValidFragment (String fragmentName) {return [YOUR_FRAGMENT_NAME].class.getName().equals(fragmentName);}或者@Overrideprotected boolean isValidFragment (String fragmentName) {return true;}
2023-07-17 11:37:021

常用英语单词5000

最常用英语单词有accent 加重、accurate 精确、acquire 获得、action 操作,运算、adjust 调整、ambient light 环境光、angle 角度、anti-aliased 平滑处理 arbitrary 任意的等。1常用英语单词1000Aaccent 加重accurate 精确acquire 获得action 操作,运算adjust 调整ambient light 环境光angle 角度anti-aliased 平滑处理arbitrary 任意的arrange 排列arrow 箭头artistic 艺术的,美术的Bbalance 平衡bar 条,栏base 基准batch 批量,成批bevel 使成斜角,斜切bilinear 双线性插值bitmap 位图,点阵图blend 混合,调和blur 模糊bold 加粗border 边界,边框brightness 亮度brush 画笔,笔形build 建造,创立burn 焦化,烧黑button 按钮Ccache 快速存储器calculation 计算calibrate 校准,校验canvas 画布carve 镌刻cascade 层叠chalk 粉笔,作记号channel 通道,频道charcoal 炭笔画chrome 铬黄,铬合金classic 经典的click (单)击(鼠标)clipboard 剪贴版clone 复制cloud 云彩command 命令content 内容continue 连续的,持续的contour 轮廓线,周线contract 收缩,缩小contrast 反差,对比coordinate 协调,协作craquelue 裂纹crayon 蜡笔crop 剪裁crystallize 水晶curl 螺旋状物,卷曲的current 当前的cursor 光标,游标curve 曲线custom 自定义Ddarken 较黑的,使变黑daubs 涂抹define 定义design 设计destination 目标,对象difference 区别,差异diffuse 散乱扩散displace 转移distort 扭曲document 文档,文件dodge 加亮drop shadow 投影duotone 双色调duplicate 复制dust 灰尘,尘土Eedge 边界effect 效果作用embed 嵌入emboss 浮雕enlarge 放大equalize 平均化expand 扩充,扩展export 输出extrude 突出eyedropper 吸管Ffacet 刻面feather 晕开,羽化fill 填充flare 张开,闪耀flatten 变平flip 翻转fragment 碎片fresco 壁画Ggamut 整个领域general 普通的glass 玻璃杯glow 发光gradient 渐变grain 纹理graphics 图形grayscale 灰阶,灰度图grid 坐标格子group 群,组grow 成长guide 参考,参考线Hhalftone 半色调histogram 柱状图horizontal 水平hue 色相Iicon 图标image 图像import 输入index 索引Inner 内部的input 输入intensity 亮度inverse 相反invert 反转,反相Kkeyboard 键盘kilometre 千米,公里Llens 凹凸透镜,焦距level 级别,色阶light 光线location 定位Mmagic 有魔法的magic wand 魔棒mask 遮罩,掩膜maximum 最大值memory 记忆,内存merge 合并,融合minimum 最小值mode 模式,方式modify 修改,改变monitor 显示器,监视器monochrome 单色的mosaic 马塞克motion 运动multichannel 多通道模式Nnegative 负片,负像noise 噪音,糙点numeric 数字化的;分数Ooffset 位移,偏移option 选项ornament 装饰outline 轮廓,外形Ppalette 调色板parameter 参数,参变量paste 粘贴pastel 彩色粉笔,蜡笔画patchwork 补教,式样path 路径pattern 图案perspective 透视pinch 极化,凹陷或突起plug-ins 插件(滤镜)pointillize 乱点描述polar coordinates 极坐标poster 招贴画posterize 色调分离preference 偏好设定preview 预览previous 前一个pseudo 假的purge 消除Rradial 圆形range 范围,领域relief 救济,援救render 渲染,粉刷,上色reticulation 网状物revert 还原,复原ripple 涟漪,波纹rotate 旋转rough 粗略ruler 标尺Ssaturation 色彩饱和度scale 缩放scratch 暂时,临时screen 屏幕seam 缝,接缝selection 选择,工作区selective 精心挑选的separation 分离,分开sharpen 锐化shear 扭曲变形similar 相似的sketch 草图,画稿skew 偏斜的smart 灵活的,精巧的smooth 平滑的smudge 玷污,污点snapshot 快照solarize 中途曝光spatter 溅,洒落sponge 海绵spray 喷,喷涂stain 着色,染色stamp 盖章,盖印status 状态,状况stereo 立体声stroke 笔划,打击swirl 漩涡,卷状物Ttexture 质地,纹理threshold 两阶调化tile 平铺,窗口并联trace 跟踪,镂边trail 痕迹,足迹transform 转变,变形transparency 透明度twirl 卷曲,快速旋转Uultimate 最终的uncommon 罕见,非凡的units 单位,单元Vvertex 顶点,最高点vertical 垂直的video 视频,电视view 视图,显示方式virus 病毒visible 可见的,明显的visual 视觉的vogue 流行,时尚volume (磁盘)容量vortex 漩涡Wwatercolor 水彩watermark 水印wave 波纹,波动welder 焊接workstation 工作站wrinkle 皱纹Zzero 零zigzag 锯齿zoom in 放大zoom out 缩小2背英语单词的最好方法第一步,准备工作:准备若干张小纸条,数目由您要记忆的单词数来决定,用于写您要记忆的英语单词,原则上每张纸条只写一个单词;准备好30个小纸盒子,第1个盒子存放今天学习与复习的单词,第2个盒子存放明天复习的单词... ...,依次类推,第30个盒子存放第30天复习的单词。第二步,添加新单词:每天把220个新单词写成条子放在盒子1中(如果您想多学可以多放点,想少学点也可以少放点),同时把盒子2的单词放到盒子1中,把盒子3的单词放在盒子2中... ...,依次类推。第三步,学习与复习:开始学习盒子1中的单词,同时根据自己的遗忘参数值决定刚学过的单词放在2 -- 30中的哪个盒子中。根据自己复习效果调整自己的遗忘参数值。最好的办法就是应用“艾宾浩斯--满爱镇微分记忆算法模型”。该模式真正做到记忆最轻松,复习次数最少,每次复习花费的时间最少。该模型可以自动适应于您的遗忘规律,对每个人的每个记忆项,动态维护一套遗忘参数,并且是在记忆的过程中进行动态维护,在最需要复习的时候提醒您进行复习,直到记忆熟悉为止。采用该模型进行记忆,比普通传统的方法更轻松、更快捷、更牢固,您根本不需要操心什么时候学习新单词,什么时候复习应该复习的单词,一切工作由系统自动完成,是传统模式无法比拟的。
2023-07-17 11:37:171

android addpreferencesfromintent没有

  addPreferencesFromResource(R.xml.setting_preference);  因为最近的项目我都要把程序的资源文件都放到另一个apk中。而上面这个方法中只能传本地的或系统的资源id。那么我就找到了类似的方法:addPreferencesFromIntent(Intent intent);百度goolge了一下发现都是没有这个方法的例子只有搜索google的里面的api:  public void addPreferencesFromIntent (Intent intent)  Since: API Level 1  This method is deprecated.This function is not relevant for a modern fragment-based PreferenceActivity.  Adds preferences from activities that match the given Intent.  Parameters  intent  The Intent to query activities.  这样介绍就很简单了,只是让我们去查询activities。没有说明xml是什么给的。没办法我只能去看源码,看他们是什么解析Intent的,那我就给出一个可用的intent。  因为是继承PreferenceFragment的,我就从源码找到frameworks/base/core/java/android/preference/PreferenceFragment.java这个类:  view plaincopy to clipboardprint?  <span style="white-space:pre"> </span>public void addPreferencesFromIntent(Intent intent) { requirePreferenceManager(); setPreferenceScreen(mPreferenceManager.inflateFromIntent(intent, getPreferenceScreen())); }  <span style="white-space:pre"> </span>public void addPreferencesFromIntent(Intent intent) { requirePreferenceManager(); setPreferenceScreen(mPreferenceManager.inflateFromIntent(intent, getPreferenceScreen())); }然后这里又用到了mPreferenceManager.inflateFromIntentt(intent, getPreferenceScreen()),那么在找到这个类frameworks/base/core/java/android/preference/PreferenceManager.java:  view plaincopy to clipboardprint?  <span style="white-space:pre"> </span>PreferenceScreen inflateFromIntent(Intent queryIntent, PreferenceScreen rootPreferences) { final List<ResolveInfo> activities = queryIntentActivities(queryIntent); final HashSet<String> inflatedRes = new HashSet<String>(); for (int i = activities.size() - 1; i >= 0; i--) { final ActivityInfo activityInfo = activities.get(i).activityInfo; final Bundle metaData = activityInfo.metaData; if ((metaData == null) || !metaData.containsKey(METADATA_KEY_PREFERENCES)) { continue; } // Need to concat the package with res ID since the same res ID // can be re-used across contexts final String uniqueResId = activityInfo.packageName + ":" + activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES); if (!inflatedRes.contains(uniqueResId)) { inflatedRes.add(uniqueResId); final Context context; try { context = mContext.createPackageContext(activityInfo.packageName, 0); } catch (NameNotFoundException e) { Log.w(TAG, "Could not create context for " + activityInfo.packageName + ": " + Log.getStackTraceString(e)); continue; } final PreferenceInflater inflater = new PreferenceInflater(context, this); final XmlResourceParser parser = activityInfo.loadXmlMetaData(context .getPackageManager(), METADATA_KEY_PREFERENCES); rootPreferences = (PreferenceScreen) inflater .inflate(parser, rootPreferences, true); parser.close(); } } rootPreferences.onAttachedToHierarchy(this); return rootPreferences; }  <span style="white-space:pre"> </span>PreferenceScreen inflateFromIntent(Intent queryIntent, PreferenceScreen rootPreferences) { final List<ResolveInfo> activities = queryIntentActivities(queryIntent); final HashSet<String> inflatedRes = new HashSet<String>(); for (int i = activities.size() - 1; i >= 0; i--) { final ActivityInfo activityInfo = activities.get(i).activityInfo; final Bundle metaData = activityInfo.metaData; if ((metaData == null) || !metaData.containsKey(METADATA_KEY_PREFERENCES)) { continue; } // Need to concat the package with res ID since the same res ID // can be re-used across contexts final String uniqueResId = activityInfo.packageName + ":" + activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES); if (!inflatedRes.contains(uniqueResId)) { inflatedRes.add(uniqueResId); final Context context; try { context = mContext.createPackageContext(activityInfo.packageName, 0); } catch (NameNotFoundException e) { Log.w(TAG, "Could not create context for " + activityInfo.packageName + ": " + Log.getStackTraceString(e)); continue; } final PreferenceInflater inflater = new PreferenceInflater(context, this); final XmlResourceParser parser = activityInfo.loadXmlMetaData(context .getPackageManager(), METADATA_KEY_PREFERENCES); rootPreferences = (PreferenceScreen) inflater .inflate(parser, rootPreferences, true); parser.close(); } } rootPreferences.onAttachedToHierarchy(this); return rootPreferences; }从上面的代码我们就知道要从intent中获取一组activity。通过 activityInfo.metaData.getInt(METADATA_KEY_PREFERENCES)我们知道就是从activity拿的<meta-data 这些数据,那么我们在AndroidManifest.xml中eclipse提示的<meta-data只有三个属性:  那么我么就不难得出结论<meta-data 中的nane就是METADATA_KEY_PREFERENCES,而xml就是resource。  接下来还有一个问题就是METADATA_KEY_PREFERENCES的值是多少。搜一下在PreferenceManager.java中有如下定义:  view plaincopy to clipboardprint?  public static final String METADATA_KEY_PREFERENCES = "android.preference";  public static final String METADATA_KEY_PREFERENCES = "android.preference";知道了以上原理我们来验证一下:  新建一个工程,在里面的activity标签中加<meta-data,如下:  view plaincopy to clipboardprint?  <span style="white-space:pre"> </span><activity android:name="com.winca.style.defaultskin.RadioReadSettingXMLActivity" android:icon="@drawable/radio" android:label="@string/radio_app_name" > <meta-data android:name="android.preference" android:resource="@xml/setting_preference"/> </activity>  <span style="white-space:pre"> </span><activity android:name="com.winca.style.defaultskin.RadioReadSettingXMLActivity" android:icon="@drawable/radio" android:label="@string/radio_app_name" > <meta-data android:name="android.preference" android:resource="@xml/setting_preference"/> </activity>这个xml就是从我们程序中拷贝多来放到新建的工程中的。  原来我们工程用的addPreferencesFromResource(R.xml.setting_preference);这语句,我们这样替换:  view plaincopy to clipboardprint?  <pre name="code" class="java"><span style="white-space:pre"> </span>Intent xmlIntent = new Intent(); ComponentName component = new ComponentName("com.winca.style.defaultskin","com.winca.style.defaultskin.RadioReadSettingXMLActivity"); xmlIntent.setComponent(component); addPreferencesFromIntent(xmlIntent);  <pre name="code" class="java"><span style="white-space:pre"> </span>Intent xmlIntent = new Intent(); ComponentName component = new ComponentName("com.winca.style.defaultskin","com.winca.style.defaultskin.RadioReadSettingXMLActivity"); xmlIntent.setComponent(component); addPreferencesFromIntent(xmlIntent);运行一下,正常显示xml里面的。问题解决。
2023-07-17 11:37:241

java在主activity中能访问到fragment的空间吗

Android上的界面展示都是通过Activity实现的,Activity实在是太常用了。但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。因此,我们今天的主角Fragment登场了。 一、Fragment初探: Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面,并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。 Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。当你在执行上述针对Fragment的事务时,你可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。 当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layoutxml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。 设计的哲学: 为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,通过官方文档中的这张图片可以很明显地看到Fragment的好处:注:左边为平板,右边为手持设备。二、Fragment的生命周期: 因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。 如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。 但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。 当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。 使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。 每当创建一个Fragment时,首先添加以下三个回调方法: onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。将Fragment加载到Activity当中有两种方式: 方式一:添加Fragment到Activity的布局文件当中方式二:在Activity的代码中动态添加Fragment第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。 第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。 下面将分别介绍一下。    三、在Activity的布局文件中添加Fragment:(不推荐) 平板的模拟器参数如下:然后新建一个工程文件。然后继续如下步骤: (1)新建文件fragment_hello.xml和HelloFragment.java: fragment_hello.xml代码如下:(即Fragment的布局文件) 复制代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容"/> <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>复制代码HelloFragment.java代码如下: 复制代码 1 package com.example.m01_fragment01; 2 3 import android.app.Fragment; 4 import android.os.Bundle; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.view.ViewGroup; 8 9 public class HelloFragment extends Fragment {10 11 @Override12 public void onCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 }15 16 @Override17 public View onCreateView(LayoutInflater inflater, ViewGroup container,18 Bundle savedInstanceState) {19 View view = inflater.inflate(R.layout.fragment_hello, null); // View android.view.LayoutInflater.inflate(int resource, ViewGroup root) 20 return view;21 }22 23 @Override24 public void onPause() {25 super.onPause();26 }27 }复制代码重点在于第19和20行,通过inflate()方法将自定义的fragment的布局加载进来。 19行代码中,第二个参数中,如果布局没有根,那就用null。 注:上方代码中,因为我们的程序是面对Android 4.0以上版本的,所以导入Fragment的包时,选择第一个:android.app.Fragment(2)将Fragment添加到Activity的布局中: 修改activity_main.xml的代码如下: 复制代码 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context=".MainActivity" > 6 7 <fragment 8 android:id="@+id/fragment_hello" 9 android:name="com.example.m01_fragment02.HelloFragment"10 android:layout_width="wrap_content"11 android:layout_height="wrap_content" />12 </LinearLayout>复制代码08行和09行是关键。其中android:name属性填上你自己创建的fragment的完整类名。如下图:当系统创建这个Activity的布局文件时,系统会实例化每一个fragment,并且调用它们的onCreateView()方法,来获得相应fragment的布局,并将返回值插入fragment标签所在的地方。 运行之后,效果如下:实际上,这种方式在开发中并不推荐,我们来介绍另外一种方法。四、在activity代码中添加fragment: 【实例】点击左侧fragment中的按钮,弹出右侧的fragment。新建一个工程文件,然后步骤如下: (1)将activity_main的布局分为两部分:左边占1/4,右边占3/4。修改activity_main.xml的代码如下: 复制代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="horizontal" > <LinearLayout android:id="@+id/left" android:layout_width="0dp" android:layout_height="match_parent" android:orientation="vertical" android:layout_weight="1" android:background="#00BFFF" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示"/> </LinearLayout> <LinearLayout android:id="@+id/right" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="3" android:background="#00FFFF" android:orientation="vertical" > </LinearLayout> </LinearLayout>复制代码上方代码中,一个LinearLayout代表一个Fragment的容器,记得要给每个fragment加一个容器的id。
2023-07-17 11:37:311

如何在activity中默认加载一个listfragment-CSDN论坛

  Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面,并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。    Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。当你在执行上述针对Fragment的事务时,你可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。    当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layoutxml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。    设计的哲学:    为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,通过官方文档中的这张图片可以很明显地看到Fragment的好处:        注:左边为平板,右边为手持设备。        二、Fragment的生命周期:    因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。    如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。    但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。    当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。    使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。    每当创建一个Fragment时,首先添加以下三个回调方法:    onCreate():系统在创建Fragment的时候调用这个方法,这里应该初始化相关的组件,一些即便是被暂停或者被停止时依然需要保留的东西。  onCreateView():当第一次绘制Fragment的UI时系统调用这个方法,该方法将返回一个View,如果Fragment不提供UI也可以返回null。注意,如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。  onPause():当用户离开Fragment时第一个调用这个方法,需要提交一些变化,因为用户很可能不再返回来。  将Fragment加载到Activity当中有两种方式:    方式一:添加Fragment到Activity的布局文件当中  方式二:在Activity的代码中动态添加Fragment  第一种方式虽然简单但灵活性不够。添加Fragment到Activity的布局文件当中,就等同于将Fragment及其视图与activity的视图绑定在一起,且在activity的生命周期过程中,无法切换fragment视图。    第二种方式比较复杂,但也是唯一一种可以在运行时控制fragment的方式(加载、移除、替换)。
2023-07-17 11:37:391

电脑partition

重要步骤如下︰ 1. 首先在微软下载 Win 8 64 bit 之 ISO 档。档件约 3 Gb 左右。勿忘抄下屏上装机码。 2. (a) 如用光碟安装 Win 8 ,把 ISO 用似 Imgburn 等软件录上 DVD 备用。(b) 如用手指碟装,要 8 Gb 容量,亦在微软下载 USB/DVD DOWNLOAD TOOL 软件,装入启动后按照介面上指示写入 ISO 档备用。 3. 装前先去磁碟管理员把容量最大之磁区缩少后定名 (F 或G ,随意),分割出约 25 Gb 给予 Win 8 采用,现须确认新磁区妥善方可作下步。 4. 入 BIOS 改开机程序,照你所用之安装媒体而设定。定后放入媒体,重新开机。 5. 现时 DVD 或 USB 手指碟会开机写入指令,再依序开出基本档件,现去照屏上指示逐件装入砌成 WIN 8 。 6. 一切完成后,关机重开时会有询问方块示出,供你按选所需糸统开用。 注︰ 分割磁区属高危一事,如不谙此道,大意或出错会发生档机,此时可选择去铺代办,但其前与后步骤则可自我研通。 在安装 Win 8 时,因它只是试用版,故须点选 WIN 7 为主要视窗系统 (在 Choose an operating system 及 Choose a default operating system 两页内),但事后亦可更改,可在 WIN 7 或 8 内去执行 (Run) 格打入 Msconfig 。之后入 Boot 页,点选 (As current OS) 一项,再点 Set as default ,点 OK, 下次重开时就会执行变更。 2012-10-30 08:02:14 补充: 如不能在微软视窗系统内分割硬碟,则需要用外间研发分割软件。例如 Minitool Partition Wizard Partition Magic Parted Magic Easeus Partiton Magic Paragon Partition Manager 等。分割是你目标最难一关,如无信心,考虑代办。 微软系统虽时有改良,惟其中分割程式之运作实有多方限制,非易用之物。 参考: 视窗糸统知识 视窗知识,分割程式经验
2023-07-17 11:37:101

求日本组合spitz的チェーリ(樱花)的歌词(日 、中)

所有人都忘记了回想过去,太阳的光辉依旧美丽。光明的世界两种不同的泪滴落下。想象下未知深渊的以后。所有人都努力变成美好的岁月。欢喜的相拥,成功的背后。所有不完美的时代。少年寒风中站立,爱在等你们在世界改变奇迹。还是会在完美的地方等待你。成功的步伐在向光明前进。伤心的泪滴背负命运的奇迹。
2023-07-17 11:37:113

Smoking Gun 歌词

歌曲名:Smoking Gun歌手:Robert Cray专辑:20th Century Masters: The Best Of Robert CrayI get a constant busy signal when I call you on the phoneRobert CrayI get a strong uneasy feeling you"re not sitting there aloneI"m having nasty, nasty visions and baby, you"re in every one one, yeahAnd I"m so afraid I"m gonna find you with that so-called smoking gunMaybe you wanna end it, you"ve had your fill of my kind of funI put 2 and 1 together and we know that"s not an even sumAnd I know just where to catch you with that well-known smoking gunI"m standing here bewildered, I can"t remember just what I"ve doneI can hear the sirens whining, my eyes blinded by the sunI know that I should be running, my heart"s beating just like a drumNow they"ve knocked me down and taken it- that still hot smoking gunhttp://music.baidu.com/song/54578822
2023-07-17 11:37:141

怎么在电脑上关闭QQ电脑管家?

如果您想在电脑上关闭QQ电脑管家,可以按照以下步骤进行:打开QQ电脑管家主界面。在主界面的右下角找到“设置”按钮,点击打开设置窗口。在设置窗口中,找到“保护与加速”选项,并选择“普通模式”。然后在“实时保护”栏目中,将“QQ电脑管家防护”和“系统防护”两项均关闭即可。如果您想完全退出QQ电脑管家,可以直接在任务管理器中结束QQ电脑管家的进程。具体操作步骤如下:按下“Ctrl+Shift+Esc”组合键,打开任务管理器。在“进程”标签页中,找到并选中“QQPCTray.exe”、“QQPCMgr.exe”和“QQPCRTP.exe”三个进程。点击“结束进程”按钮,将这三个进程全部结束即可。需要注意的是,关闭或退出QQ电脑管家可能会影响到电脑的安全性能,建议您在不使用该软件时再进行关闭操作。
2023-07-17 11:37:141

请问英文口语里用到 lil这个词什么意思?是简写么?

little.
2023-07-17 11:37:163

spark中关于partition的简单理解

看到一篇关于spark partition的文件,讲的简单易懂通俗,故转。 我们要想对spark中RDD的分区进行一个简单的了解的话,就不免要先了解一下hdfs的前世今生。 众所周知,hdfs是一个非常不错的分布式文件系统,这是这么多年来大家有目共睹的。 hdfs文件为分布式存储,每个文件都被切分为block(默认为128M)。为了达到容错的目的,他们还提供为每个block存放了N个副本(默认为3个)。当然,以上说的这些也可以根据实际的环境业务调整。 多副本除了可以达到容错的目的,也为计算时数据的本地性提供了便捷。当数据所在节点的计算资源不充足时,多副本机制可以不用迁移数据,直接在另一个副本所在节点计算即可。此时看到这里,肯定就有人会问了,那如果所有副本所在的节点计算资源都不充足那该怎么办? 问的很好,一般会有一个配置来设置一个等待时长来等待的,假设等待时长为三秒,如果超过三秒,还没有空闲资源,就会分配给别的副本所在节点计算的,如果再别的副本所在节点也需等待且超过了三秒。则就会启动数据迁移了(诸多因素影响,代价就比较大了)。 接下来我们就介绍RDD,RDD是什么?弹性分布式数据集。 弹性:并不是指他可以动态扩展,而是血统容错机制。 分布式:顾名思义,RDD会在多个节点上存储,就和hdfs的分布式道理是一样的。hdfs文件被切分为多个block存储在各个节点上,而RDD是被切分为多个partition。不同的partition可能在不同的节点上。 再spark读取hdfs的场景下,spark把hdfs的block读到内存就会抽象为spark的partition。至于后续遇到shuffle的操作,RDD的partition可以根据Hash再次进行划分(一般pairRDD是使用key做Hash再取余来划分partition)。 再spark计算末尾,一般会把数据做持久化到hive,hbase,hdfs等等。我们就拿hdfs举例,将RDD持久化到hdfs上,RDD的每个partition就会存成一个文件,如果文件小于128M,就可以理解为一个partition对应hdfs的一个block。反之,如果大于128M,就会被且分为多个block,这样,一个partition就会对应多个block。 鉴于上述partition大于128M的情况,在做sparkStreaming增量数据累加时一定要记得调整RDD的分区数。假设,第一次保存RDD时10个partition,每个partition有140M。那么该RDD保存在hdfs上就会有20个block,下一批次重新读取hdfs上的这些数据,RDD的partition个数就会变为20个。再后续有类似union的操作,导致partition增加,但是程序有没有repartition或者进过shuffle的重新分区,这样就导致这部分数据的partition无限增加,这样一直下去肯定是会出问题的。所以,类似这样的情景,再程序开发结束一定要审查需不需要重新分区。 转自:https://www.jianshu.com/p/3e79db80c43c
2023-07-17 11:37:171

taxi是什么意思

taxi意思如下:n. 出租汽车; 计程车; 的士; (非洲某些地方走固定路线、乘客可随时上下的) 小公共汽车,小巴士。v. (起飞前或降落后在地面上) 滑行。taxi例句:Should we go by car or by taxi?我们是开车去还是坐出租车去?We can go there by taxi.我们可以坐出租车去那里。Why not go by taxi?为什么不坐出租车去?
2023-07-17 11:37:171

cst是什么时区

1、美国中部时间:Central Standard Time (USA) UT-6:00;
2023-07-17 11:37:214

qq电脑管家下的文件在哪里

  qq电脑管家下载文件的保存位置根据个人的设置而定,查看具体的下载的文件的保存位置的步骤如下:   1、打开电脑,进入电脑管家,点击右上角的倒三角符号,进入设置页面;   2、在弹出的设置页面的窗口中,点击下载设置,即可观看下载的文件的具体保存位置。
2023-07-17 11:37:221

Win10系统桌面找不到QQ电脑管家图标怎么办

QQ电脑管家是一款非常欢迎的软件,它能够帮助我们拦截恶意软件,清理系统垃圾等,十分的方便。不过,最近一些使用windows10系统的用户反馈电脑桌面上突然找不到QQ管家的图标,这该怎么办?下面,小编就给大家分享下具体解决方法。推荐:windows10免激活系统下载方法一:1、点击开始菜单,找到“腾讯软件”,在下面就可以看到“电脑管家”;2、在电脑管家点住鼠标左键不放,拖拽到桌面上,松开鼠标即可!方法二:1、我们也可以直接打开QQ管家的默认安装路径,新版的QQ管家的64位系统安装路径为:D:ProgramFiles(x86)TencentQQPCMgrxx.x.xxxxx.xxx(X代表版本号);新版QQ管家32位系统安路径:D:ProgramFilesTencentQQPCMgrxx.x.xxxxx.xxx(X代表版本号)老版QQ管家64位系统安装路径:C:ProgramFiles(x86)TencentQQPCMgrxx.x.xxxxx.xxx(X代表版本号)老版QQ管家32位系统安装路径:C:ProgramFilesTencentQQPCMgrxx.x.xxxxx.xxx(X代表版本号)2、在文件夹中找到“QQPCTray.exe”,单击右键,选择“发送到”—“桌面快捷方式”;3、将该快捷方式单击右键,【重命名】为QQ电脑管家即可;4、完成设置后桌面上就有QQ管家图标了。以上就是Win10系统桌面找不到QQ电脑管家图标问题的两种解决方法了。经常需要使用到电脑管家的朋友们,赶紧尝试下小编的方法。任选一种,都能马上解决问题哦!
2023-07-17 11:37:071

美国分为几个时区

美国有:东部时间(Eastern Time)、中部时间(Central Time)、山地时间(Mountain Time)、太平洋时间(Pacific Time)、夏威夷阿拉斯加时间(Hawaii Alaska Time)。纽约、华盛顿属于东部时间,芝加哥属于中部时间,洛杉矶、旧金山属于太平洋时间。纽约早晨8:00,芝加哥就是清晨7:00,洛杉矶才5:00。在美国转机,就要注意这个问题。所以,在底特律机场,他们不停地用各种语言(包括汉语)广播,提醒旅客注意“底特律是东部时间,请按机场的显示屏调整你的时间。以免误机。”美国有几个州,东部和西部时区也不一样。
2023-07-17 11:37:044

腾讯电脑管家软件怎么样

腾讯电脑管家原名QQ电脑管家,是腾讯推出的一款免费安全软件,该软件在针对网络钓鱼欺诈及盗号打击方面和安全防护及病毒查杀方面的能力已达到国际一流杀软水平。今天我就为大家带关于腾讯电脑管家这款软件的详细介绍。腾讯电脑管家拥有云查杀木马,系统加速,漏洞修复,实时防护,网速保护等功能,能及时保护电脑免遭病毒侵害。还有桌面整理,文档保护,文档找回等功能,帮你轻松管理电脑,文档不再丢失。腾讯电脑管家拥有自研的第二代反病毒引擎,搭载全球最大的风险网址数据库,业界领先的office宏病毒处理能力,占用资源少、轻巧、智能精准、病毒识别率高。腾讯电脑管家还有一个界面更加简洁、更方便用户操作的轻巧模式,点击左上方按钮即可进入以及退出。另外杀毒软件常见的电脑体检、病毒查杀、清理垃圾、电脑加速、软件分析等功能皆可在主界面找到。
2023-07-17 11:37:001

partition的介绍

partition是计算机编程函数。Partition函数用于返回一Variant (String),指定一个范围,在一系列计算的范围中指定的数字出现在这个范围内。
2023-07-17 11:36:551

Spitz的一首午后红茶的歌叫“空も飞べるはず ”。是什么意思呀?帮忙翻译以下。

一定也能飞上天空虽然白了点儿,但意思没错
2023-07-17 11:36:556

which翻译成中文

which [hwitʃ] pron. 哪一个,哪一些 conj…的a. 哪一个,哪一些
2023-07-17 11:36:544

美国太平洋时间是哪一个时区的区时

 美国横跨西五区至西十区,共六个时区。每个时区对应一个标准时间,从东向西分别为东部时间(EST)(西五区时间)、中部时间(CST)(西六区时间)、山地时间(MST)(西七区时间)、太平洋时间(西部时间)(PST)(西八区时间)、阿拉斯加时间(AKST)(西九区时间)和夏威夷时间(HST)(西十区时间),按照“东早西晚”的规律,各递减一小时。  美国的时区界限并不完全按照经线划分,基本上照顾了各州的自然边界。不同的时区覆盖的州市大小、多少不同。东部时间(EST)包括大西洋沿岸及近大陆的19个州和华盛顿特区,代表城市华盛顿、纽约。中部时间(CST)代表城市芝加哥、新奥尔良。山地时间(MST)代表城市盐湖城、丹佛,太平洋时间(PST)包括太平洋沿岸的4个州,代表城市旧金山、洛杉矶、西雅图,阿拉斯加时间(AKST)只限于阿拉斯加。夏威夷时间(HST)只限于夏威夷。 http://www.timedate.cn/worldclock/country.asp?n=usapst
2023-07-17 11:36:531

腾讯电脑管家可以杀毒吗

腾讯电脑管家当然可以了,腾讯电脑管家(Tencent PC Manager/原名QQ电脑管家)是腾讯公司推出的一款免费安全软件,能有效预防和解决计算机上常见的安全风险。拥有云查杀木马,系统加速,漏洞修复,实时防护,网速保护,电脑诊所,健康小助手等功能,首创“管理+杀毒”2合1的开创性功能依托管家云查杀和第二代自研反病毒引擎“鹰眼”,小红伞(antivir) 管家系统修复引擎和金山云查杀引擎,拥有QQ账号全景防卫系统,针对网络钓鱼欺诈及盗号打击方面,有更加出色的表现,在安全防护及病毒查杀方面的能力已达到国际一流杀软水平,能够全面保障电脑安全。西海岸CheckMark认证、VB100认证,已斩获全球两大权威评测大满贯的成绩 。下面分享下如何进行杀毒:【杀毒前准备】1、首先杀毒之前,我们应该按住CTRL+ATL+DEL,电脑会自动弹出一个任务管理器,在任务管理器中,我们要把所有的非必要开启任务给结束掉,因为在杀毒时,杀毒软件会默认跳过正在开启的软件,所以要把所有进程结束掉。2、结束掉进程后,打开腾讯电脑管家,在杀毒分类功能的下面,我们可以看到杀毒引擎几个字,后面跟随着一堆图标,其中有一个图标是显示的感叹号,我们点击后选择【开启引擎】,第一次开启会自动下载程序,正常情况无需担心。【开始杀毒】1 、杀毒引擎更新好之后,下一步当然就是杀毒了,一共有【闪电查杀】、【全盘查杀】、【指定位置查杀】3个模式,但是这3个模式代表的意义是不同的,虽然闪电查杀按钮比较明显,但不代表杀毒效果最好,只是在紧急时刻使用来杀毒而已,全盘查杀可以说是杀毒效果最好的,指定位置查杀属于其次,也是为了节约时间设置的一个杀毒办法。2、懂得了这些,你就可以根据你自己的需要进行杀毒了,如果时间不是特别紧急,一般选择【全盘查杀】是最好的,点击后你可以去旁边喝杯茶,向远处眺望一下,缓解一下眼疲劳,大概10--20分钟就可以检测完成了。
2023-07-17 11:36:531