问题描述
继承Binder,目的是实现一个减法操作的功能,通过服务返回该Binder对象,在Activity中调用Binder中的减法操作,得到的返回值是0,源代码如下
Maa
package com.example.liupengcheng.myapplication;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
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.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends FragmentActivity {
public int[] mergeSort(int[] data) {
if (data == null || data.length == 1) {
return data;
}
if (data.length == 2) {
if (data[0] > data[1]) {
int temp = data[0];
data[0] = data[1];
data[1] = temp;
return data;
} else {
return data;
}
}
int middle = data.length / 2;
int leftData[] = new int[middle];
int rightData[] = new int[data.length - middle];
System.arraycopy(data, 0, leftData, 0, middle);
System.arraycopy(data, middle, rightData, 0, data.length - middle);
leftData = mergeSort(leftData);
rightData = mergeSort(rightData);
int leftDataIndex = 0;
int rightDataIndex = 0;
int[] tempData = new int[leftData.length + rightData.length];
int i = 0;
while ((leftDataIndex < leftData.length) && (rightDataIndex < rightData.length)) {
if ((leftData[leftDataIndex] > rightData[rightDataIndex])) {
tempData[i] = rightData[rightDataIndex++];
} else if (leftDataIndex < leftData.length) {
tempData[i] = leftData[leftDataIndex++];
}
i++;
}
System.arraycopy(leftData,