最近从eclipse切换到android studio.如何检查android studio中的app堆和内存分配?在Eclipse中我们有MAT在工作室中有什么东西来检查堆转储,hprof文件?
我想在我使用的后台服务中访问SharedPreference,PreferenceManager.getDefaultSharedPreferences()但它提供了nullpoint Exception
谢谢
我正在开发一个Android项目,我正面临这种情况.
我有2节课:
class A extends B
{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
class X extends Y{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你观察到两个类openDoor()和两个常见的方法closeDoor()
什么是避免重复方法的最佳方法?
我的方法
class ContainingDuplicateMethods{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
}
Run Code Online (Sandbox Code Playgroud)
在类中创建ContainingDuplicateMethods对象并调用方法,我们将其称为策略模式,但这是最佳解决方案吗?为什么,因为在大型项目中我们不能遵循这种方法,人们说它不是很好的做法,在这种情况下,我需要遵循什么方法?
请注意,class A and X已经扩展了其他类,我也不想使用静态因为 - 静态成员在程序执行开始时被加载到内存中,并且将在内存中直到程序终止,比如我的代码连续运行数天或数周继续使用静态引用创建许多对象,因此我们可能会耗尽内存.
目前我正在开发一款Android应用程序,因为我正在使用Facebook SDK.它可以很好地将消息发布到墙上等,但是通过这个SDK,我无法向其他人发送应用请求.
谁能帮我吗?
这是我的代码片段:
Bundle params = new Bundle();
params.putString("message", getString(R.string.request_message));
Utility.mFacebook.dialog(Hackbook.this, "apprequests", params, new AppRequestsListener());
Run Code Online (Sandbox Code Playgroud)
和AppRequestsListener:
public class AppRequestsListener extends BaseDialogListener {
@Override
public void onComplete(Bundle values) {
Toast toast = Toast.makeText(getApplicationContext(), "App request sent", Toast.LENGTH_SHORT);
toast.show();
}
@Override
public void onFacebookError(FacebookError error) {
Toast.makeText(getApplicationContext(), "Facebook Error: " + error.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
Toast toast = Toast.makeText(getApplicationContext(), "App request cancelled", Toast.LENGTH_SHORT);
toast.show();
}
}
Run Code Online (Sandbox Code Playgroud) 应用程序随机在三星galaxy设备上崩溃.
java.lang.RuntimeException: Unable to start activity ComponentInfo: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.support.v7.widget.Toolbar$SavedState
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2404)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4073)
at android.app.ActivityThread.access$1000(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1314)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5653)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.support.v7.widget.Toolbar$SavedState
at android.support.v7.widget.Toolbar.onRestoreInstanceState(Toolbar.java:1048)
at android.view.View.dispatchRestoreInstanceState(View.java:13757)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2855)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2861)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2861)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2861)
at android.view.View.restoreHierarchyState(View.java:13735)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1936)
at android.app.Activity.onRestoreInstanceState(Activity.java:997)
at android.app.Activity.performRestoreInstanceState(Activity.java:969)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1144)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2382)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4073)
at android.app.ActivityThread.access$1000(ActivityThread.java:172)
at …Run Code Online (Sandbox Code Playgroud) 我在图像视图中有一个图像,我想将图像从图像视图保存到图库或任何存储空间任何人都可以告诉我如何做到这一点?谢谢.
最好的祝福