GVKun编程网logo

android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?(android setdither)

9

针对android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?和androidsetdither这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展

针对android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?android setdither这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Android ListView子视图setEnabled()和setClickable()什么都不做、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.backup、Android L:ActionBar setHideOnContentScrollEnabled等相关知识,希望可以帮助到你。

本文目录一览:

android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?(android setdither)

android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?(android setdither)

我愿意通过以下代码从另一个活动中禁用一个活动,但这会导致问题:杀死当前应用程序.
   SDK版本为4.0.

 @Override
 public void onCreate(Bundle savedInstanceState) {  
     PackageManager pm = getPackageManager();

     pm.setComponentEnabledSetting(newComponentName(this,
                                    "com.xxx.launcher.desktop.testActivity"),
                                    PackageManager.COMPONENT_ENABLED_STATE_disABLED,   
                                    PackageManager.DONT_KILL_APP);

}

缺乏技巧吗?

解决方法:

你应该看看http://developer.android.com/reference/android/content/pm/PackageManager.html#DONT_KILL_APP

使用PackageManager.DONT_KILL_APP时必须格外小心,因为它可能导致不确定的行为.尤其是在活动试图禁用自身的情况下.如果您将另一个活动定位为目标,那应该没问题,但是我猜您要清除的活动位于

您对ComponentName的调用似乎不正确.
您可能要调用新的ComponentName(this.getApplicationContext(),testActivity.class).或者,您可以使用新的ComponentName(“ com.xxx.launcher.desktop”,“ com.xxx.launcher.desktop.testActivity”),其中第一个参数是AndroidManifest.xml文件中的包,第二个参数是完整的ComponentName的路径.请看以下SO问题,以获取有关设置ComponentName的信息:When to use which constructor for ComponentName in Android?,以获取更多信息.

Android ListView子视图setEnabled()和setClickable()什么都不做

Android ListView子视图setEnabled()和setClickable()什么都不做

用户点击ListView中的项目后,我正在做一些AsyncTask工作.我想禁用该项目,因此无法单击两次.我已经简化了点击监听器只包含这个方法,但它仍然没有为我做任何事情,视图看起来一样,它让自己再次愉快地点击,这让我非常烦恼.

public void onItemClick(AdapterView<?> parent, View clickedView,
  int position, long id) {
  item = (Episode) parent.getItemAtPosition(position);
  clickedView.setClickable(false);
  clickedView.setEnabled(false);
  clickedView.invalidate();
}

每行的“我的视图”是一个带有两个TextView的自定义LinearLayout.

解决方法:

所以,您也可能正在使用自定义适配器.如果这样做,请覆盖以下方法:

public boolean areAllItemsEnabled() {
    return false;
}

public boolean isEnabled(int position) {
    // return false if position == position you want to disable
}

然后,当您收到单击时,告诉适配器单击的最后一项是什么,并在isEnabled上为该位置返回false.例如,您可以在适配器中使用这样的方法:

private int mLastClicked;
public void setLastClicked(int lastClicked){
    mLastClicked = lastClicked;
}

Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba

Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba

我是一个更新鲜的android,当我尝试在avd中运行我的应用程序时,在日志猫中发现以下异常,显示不幸的是我的应用程序无法运行,请帮助

 android.content.pm.PackageManager$NameNotFoundException: Application package com.google.android.backup not found
        at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:2172)
        at android.app.ContextImpl.createPackageContext(ContextImpl.java:2148)
        at android.content.Contextwrapper.createPackageContext(Contextwrapper.java:671)
        at com.google.android.gms.backup.an.<init>(SourceFile:47)
        at com.google.android.gms.backup.BackupTransportMigratorService.f(SourceFile:248)
        at com.google.android.gms.backup.BackupTransportMigratorService.b(SourceFile:196)
        at com.google.android.gms.backup.BackupTransportMigratorService.onHandleIntent(SourceFile:131)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)

我的android清单如下所示

         <?xml version="1.0" encoding="utf-8"?>
           <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cornex.criminalintent" >

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".CrimeListActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".CrimePagerActivity"
        android:label="@string/app_name" >

    </activity>
</application>

解决方法:

要创建数据备份应用程序,您需要使用Google备份服务注册您的应用程序.这已在示例中解释.注册后,您必须在AndroidManifest.XML中指定其密钥

 <application
   android:allowBackup="true"
   android:backupAgent="YOUR_BACKUP_AGENT">

   <Meta-data 
      android:name="com.google.android.backup.api_key"
      android:value="YOUR_API_KEY" />
</application>

Android提供BackUpAgentHelper类来处理数据备份的所有操作.要使用此类,您必须使用它扩展您的类.其语法如下:相应的备份代理可以实现,如下面的清单所示.

import android.app.backup.BackupAgentHelper;

public class YOUR_BACKUP_AGENT extends BackupAgentHelper {    

} 

要备份的持久性数据是两种形式之一.它可以是SharedPrefrences,也可以是File. Android在SharedPreferencesBackupHelper和FileBackupHelper各自的类中支持两种类型的备份.

要使用SharedPerefernceBackupHelper,您需要使用sharedPerefernces文件的名称实例化其对象.其语法如下 –

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);

您需要做的最后一件事是通过指定备份密钥字符串和帮助程序对象来调用addHelper方法.其语法如下 –

addHelper(PREFS_BACKUP_KEY, helper);

addHelper方法将自动向给定数据子集添加帮助程序到代理程序的配置.

有关详细信息,请参阅this Tutorial和this article

Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.backup

Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.backup

我是一个更新鲜的 android,当我尝试在avd中运行我的应用程序时,在日志猫中发现以下异常,显示不幸的是我的应用程序无法运行,请帮助

android.content.pm.PackageManager$NameNotFoundException: Application package com.google.android.backup not found
        at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:2172)
        at android.app.ContextImpl.createPackageContext(ContextImpl.java:2148)
        at android.content.Contextwrapper.createPackageContext(Contextwrapper.java:671)
        at com.google.android.gms.backup.an.<init>(SourceFile:47)
        at com.google.android.gms.backup.BackupTransportMigratorService.f(SourceFile:248)
        at com.google.android.gms.backup.BackupTransportMigratorService.b(SourceFile:196)
        at com.google.android.gms.backup.BackupTransportMigratorService.onHandleIntent(SourceFile:131)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)

我的android清单如下所示

<?xml version="1.0" encoding="utf-8"?>
           <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cornex.criminalintent" >

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".CrimeListActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".CrimePagerActivity"
        android:label="@string/app_name" >

    </activity>
</application>

解决方法

要创建数据备份应用程序,您需要使用Google备份服务注册您的应用程序.这已在示例中解释.注册后,您必须在AndroidManifest.XML中指定其密钥

<application
   android:allowBackup="true"
   android:backupAgent="YOUR_BACKUP_AGENT">

   <Meta-data 
      android:name="com.google.android.backup.api_key"
      android:value="YOUR_API_KEY" />
</application>

Android提供BackUpAgentHelper类来处理数据备份的所有操作.要使用此类,您必须使用它扩展您的类.其语法如下:相应的备份代理可以实现,如下面的清单所示.

import android.app.backup.BackupAgentHelper;

public class YOUR_BACKUP_AGENT extends BackupAgentHelper {    

}

要备份的持久性数据是两种形式之一.它可以是SharedPrefrences,也可以是File. Android在SharedPreferencesBackupHelper和FileBackupHelper各自的类中支持两种类型的备份.

要使用SharedPerefernceBackupHelper,您需要使用sharedPerefernces文件的名称实例化其对象.其语法如下 –

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this,File_Name_Of_Prefrences);

您需要做的最后一件事是通过指定备份密钥字符串和帮助程序对象来调用addHelper方法.其语法如下 –

addHelper(PREFS_BACKUP_KEY,helper);

addHelper方法将自动向给定数据子集添加帮助程序到代理程序的配置.

有关详细信息,请参阅this Tutorial和this article

Android L:ActionBar setHideOnContentScrollEnabled

Android L:ActionBar setHideOnContentScrollEnabled

@H_301_1@
我正在尝试在新的L API中使用setHideOnContentScrollEnabled和setHideOffset.但是,所提到的功能似乎都没有任何效果.其他人遇到过同样的问题?

我的Activity的布局是一个ScrollView,TextView显示大量文本,因此有def滚动.我还根据文档的要求添加了FEATURE_ACTION_BAR_OVERLAY

getwindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
    setContentView(R.layout.main_activity);

    getActionBar().setHideOnContentScrollEnabled(true);
    getActionBar().setHideOffset(40);

解决方法

请注意:

If enabled,the action bar will scroll out of sight along with a
nested scrolling child view’s content.

View.setnestedScrollingEnabled(布尔)

关于android-setComponentEnabledSetting导致异常,它可能会杀死当前应用程序?android setdither的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android ListView子视图setEnabled()和setClickable()什么都不做、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.backup、Android L:ActionBar setHideOnContentScrollEnabled的相关信息,请在本站寻找。

本文标签: