java.lang.ClassCastException:DataCountUtilities无法强制转换为android.app.Activity

时间:2013-06-24 20:27:02

标签: java android class service

错误:

java.lang.ClassCastException: DataCountUtilities cannot be cast to android.app.Activity

注意:

我已经在我的清单中声明了以下内容 - 但我感觉它可能会因为它不是一项活动而崩溃 - 我只是需要它在我调用后在后台运行 - 所以我'我不确定它是否应该被定义为服务 - 或者只是像我一样将其留作类。

<activity
            android:name="com.tracfone.generic.clientprovisioninghandler.DataCountUtilities">
                </activity>

来源:

public class DataCountUtilities {


    //swap the content of a string by switching place
    //each pair of consecutive characters
    //If string length is odd last character is left in place
    public String swappedMdn(Context ctx){ 
        TelephonyManager tm = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);
        //Extract the phone number from the TelephonyManager instance
        String mdn = tm.getLine1Number();
        //Insure MDN is 10 characters
        if (mdn.length() < 10 || mdn == null) mdn ="0000000000";
        //Extract last 10 digits of MDN
        if (mdn.length() > 10) mdn = mdn.substring(mdn.length() - 10, mdn.length()); 
        char data[] = mdn.toCharArray();
        char digit;
        for (int index = 0; index < mdn.length() - (mdn.length())%2; index+=2){
            digit = data[index];
            data[index] = data[index+1];
            data[index+1] = digit;


            Intent i = new Intent(ctx, DataCountService.class);
            i.putExtra("key", mdn);  
            startActivity(i);  

                }

        return String.valueOf(data); 


}

    private void startActivity(Intent i) {
        // TODO Auto-generated method stub

    }}

2 个答案:

答案 0 :(得分:0)

你做的不是使用activity的正确方法。如果你想要这个类应该在后台运行然后将它声明为Service。Activity有自己的生命周期你必须{{ 3}}。

答案 1 :(得分:0)

您希望平台作为Android Activity类调用的类必须扩展Activity

变化

public class DataCountUtilities {

public class DataCountUtilities extends Activity {

当然如果你不把它写成一个Activity(身体看起来不像一个),那么你需要适当地调用它。例如,如果您希望它像Akshay建议的那样是服务,则需要扩展Service。或者是其中一些子类。