小编Ale*_*ndr的帖子

Android MVP:在Presenter中安全使用Context

在我的应用程序中,我使用ContentProvider和使用LoaderManager.LoaderCallbacks<Cursor>.

片段(查看)

public class ArticleCatalogFragment extends BaseFragment
        implements ArticleCatalogPresenter.View,
        LoaderManager.LoaderCallbacks<Cursor> {

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        return onCreateArticleCatalogLoader(args);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {        
         data.registerContentObserver(new LoaderContentObserver(new Handler(), loader));
         updateUI(data);        
    }   

    private Loader onCreateArticleCatalogLoader(Bundle args) {
            int categoryId = args.getInt(CATEGORY_ID);
            Loader loader = new ArticleCatalogLoader(this.getActivity(), categoryId);            
            return loader;
    }

}
Run Code Online (Sandbox Code Playgroud)

从MVP的角度来看,我需要:

主持人

public class ArticleCatalogPresenter extends BasePresenter
        implements LoaderManager.LoaderCallbacks<Cursor> {

    View view;

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        return onCreateArticleCatalogLoader(args); …
Run Code Online (Sandbox Code Playgroud)

mvp android design-patterns android-cursor

15
推荐指数
1
解决办法
5956
查看次数

Visual Studio 2013中的内存分析

我想探索如何在我的应用程序中分配内存.我有C#控制台应用程序并使用Visual Studio 2013 Professional.

我转到Analyze - > Perfomance and Diagnostics并选择了.NET内存分配

在此输入图像描述

结果我得到以下总结:

在此输入图像描述

在图表中每次使用CPU使用率(%).但是,如何才能看到每次分配内存和GC事件?我在这里找不到.

.net visual-studio visual-studio-2013

12
推荐指数
1
解决办法
2万
查看次数

使用copyFromRealm将RealmResults <E>转换为List <E>

我怎样才能转换RealmResults<E>List<E>

我试过用方法copyFromRealm:

RealmResults<EventRealm> result = realm.where(EventRealm.class).findAll();

EventRealm eventRealm = result.get(0);
int id = eventRealm.getId(); // return id 2564
String title = eventRealm.getTitle(); // return "My event"

List<EventRealm> copied = realm.copyFromRealm(result);

EventRealm eventRealm1 = copied.get(0);
int id1 = eventRealm1.getId(); // return id 0
String title1 = eventRealm1.getTitle(); // return "My event"
Run Code Online (Sandbox Code Playgroud)

但不太明白为什么在副本中getTitle()给出正确的结果,但getId()不正确.

模型

public class EventRealm extends RealmObject {

        @PrimaryKey
        private int id;
        private String title;

        public int getId() {
            return …
Run Code Online (Sandbox Code Playgroud)

android realm

8
推荐指数
1
解决办法
4599
查看次数

如何在Linq中找到列表中的对象?

我有一个对象:

public class MyObject 
    {
        public int Id { get; set; }     
        public List<MyObject> Items { get; set; }     
    }
Run Code Online (Sandbox Code Playgroud)

我有MyObject列表:

List<MyObject> collection = new List<MyObject>();

collection.Add(new MyObject()
{
     Id = 1,
     Items = null 
});

collection.Add(new MyObject()
{
     Id = 2,
     Items = null
});

collection.Add(new MyObject()
{
     Id = 3,
     Items = null
});


List<MyObject> collectionMyObject = new List<MyObject>();

collectionMyObject.Add(new MyObject()
{
     Id = 4,
     Items = collection
});

collectionMyObject.Add(new MyObject()
{
     Id = 5,
     Items = null …
Run Code Online (Sandbox Code Playgroud)

c# linq windows-phone-7

7
推荐指数
2
解决办法
3万
查看次数

Windows Phone Store故障日志中的异常

我经常在Windows Phone Store(Windows Phone 8.1 Runtime app)中看到失败日志这个异常:

EM_WATCHDOG_TIMEOUT_DEADA444_Template.exe!{XXXXXXXX-D1A3-49E7-XXXX-316A928B125C}_Task_disconnected_while_still_running:_server_task_currentState_=_Hiding,_targetState_=_Inactive.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪是空的,我无法处理异常.可能是什么问题呢?

c# windows-phone-store windows-phone-8.1

6
推荐指数
0
解决办法
374
查看次数

使用Realm和Gson

我有json_id

 String json = "{ _id : 1, name : 'Alex', role: 'admin' }"
Run Code Online (Sandbox Code Playgroud)

在我的Realm模型中,我使用@SerializedName属性:

public class User extends RealmObject {

    @SerializedName("_id")  
    @PrimaryKey
    private int id;
    private String name;
    private String comment;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) …
Run Code Online (Sandbox Code Playgroud)

android json realm

6
推荐指数
2
解决办法
3341
查看次数

匕首 2:java.lang.NoSuchMethodError

无法使用 Dagger 2 (Android Studio 1.3) 构建项目。

步骤 1. 向 build.gradle 添加依赖项

apt 'com.google.dagger:dagger-compiler:2.0'
compile 'com.google.dagger:dagger:2.0'    
provided 'org.glassfish:javax.annotation:10.0-b28'
Run Code Online (Sandbox Code Playgroud)

完整的 build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'


android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {        
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.mcxiaoke.volley:library:1.0.+'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.support:design:22.2.+'
    compile 'com.android.support:palette-v7:22.2.+'
    compile 'com.afollestad:material-dialogs:0.7.8.1'

    apt 'com.google.dagger:dagger-compiler:2.0' …
Run Code Online (Sandbox Code Playgroud)

java android dagger-2

5
推荐指数
0
解决办法
3334
查看次数

使用 Dagger2 提供依赖

我正在使用一个包装谷歌地图的(例子是假的,以简化问题,但本质保持不变),比如为 GoogleMap 装饰器,并有 MarkerManager 用于添加、删除标记等。

//图书馆

import com.google.android.gms.maps.GoogleMap;

public class DelegatingGoogleMap {

    GoogleMap map;
    MarkerManager manager;  

    public class DelegatingGoogleMap(GoogleMap map){
        this.map = map;
        this.manager = new MarkerManager(map);      
    }
}


import com.google.android.gms.maps.GoogleMap;

public class MarkerManager {

    public class GoogleMap map;

    public class MarkerManager(GoogleMap map) {
        this.map = map;
    }       
}
Run Code Online (Sandbox Code Playgroud)

在应用程序中我想使用自己的 MarkerManager's

//应用程序

public class MarkerManagerExtended extends MarkerManager {

    public class MarkerManager(GoogleMap map) {
        super(map);
    }

}
Run Code Online (Sandbox Code Playgroud)

所以我想使用 Dagger 2 将 MarkerManagerExtended 注入到 DelegatingGoogleMap(属性注入)。

public class DelegatingGoogleMap {

    GoogleMap …
Run Code Online (Sandbox Code Playgroud)

android google-maps dependency-injection dagger-2

5
推荐指数
0
解决办法
422
查看次数

将StringFormat和Converter绑定在一起

我从网络服务(User.Avatar)获取用户的头像网址:

 /users/user_id/12?last_update=timestamp
Run Code Online (Sandbox Code Playgroud)

在不同的控件中,我必须使用不同大小的头像(Web服务可以裁剪和调整图像大小):

 ImageSource="{Binding User.Avatar, StringFormat=http://myurl.com/\{0\}/crop/110x110, Converter={StaticResource ImageSizeUrlConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

转换器必须采取

http://myurl.com/users/user_id/12?last_update=timestamp/crop/110x110(带StringFormat)

并返回

http://myurl.com/users/user_id/12/crop/110x110?last_update=timestamp
Run Code Online (Sandbox Code Playgroud)

但转换器采取/users/user_id/12?last_update=timestamp(没有StringFormat).

这是正常的行为吗?

data-binding wpf windows-phone-7 windows-phone-8

2
推荐指数
1
解决办法
2100
查看次数

异步和并行执行功能

我有一个功能:

int f1(int a)
{
    return a;
}

int f2(int a)
{
    return a*2;
}
Run Code Online (Sandbox Code Playgroud)

我希望执行函数异步和并行,等待结果和求和然后结果.我可以使用代码

 var result1 = Task.Run(() => f1(5));
 var result2 = Task.Run(() => f2(10));

 await Task.WhenAll(result1, result2);

 int result = result1.Result + result2.Result;
Run Code Online (Sandbox Code Playgroud)

这很酷.但是,如果我的函数与回调一起工作,那该怎么做呢

void f1(Action<int> action, int a)
{
    action.Invoke(a);
}

void f2(Action<int> action, int a)
{
    a = a*2;
    action.Invoke(a);
}

f1(result => Console.WriteLine("result1 = {0}", result), 5);
f2(result => Console.WriteLine("result2 = {0}", result), 10);
Run Code Online (Sandbox Code Playgroud)

我无法重写这个函数,这个函数在其他代码中使用.在这种情况下,我可以解决我的代码不像地狱的问题?

c# windows-phone-7 async-await windows-phone-8

2
推荐指数
1
解决办法
105
查看次数