Сбой приложения Android при телефонном звонке - PullRequest
0 голосов
/ 04 июня 2018

новичок в Java и Android Studio здесь.Я пытаюсь установить TextView в какое-то значение при обнаружении телефона. Мое приложение ломается каждый раз при входящем звонке, я пробовал много вещей, но ничего не работает.Может быть, я передаю контекст неправильно?

Я использую код, размещенный здесь Гейбом Сечаном: Как обнаружить входящие звонки на устройстве Android?

MainActivity:

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private static Context mContext;
    public static Context getContext() {
        return mContext;
    }
    public void setContext(Context mContext) {
        this.mContext = mContext;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Context c = MainActivity.getContext();
        TextView textView;
        new CallReceiver(c);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=(TextView)findViewById(R.id.textView1);
    }
}

CallReceiver:

import java.util.Date;
import android.content.Context;
import android.widget.TextView;

public class CallReceiver extends PhonecallReceiver {
    Context context;
    TextView textView;
    public CallReceiver(){}
    public CallReceiver(Context context)
    {
        this.context=context;
    }

    @Override
    protected void onIncomingCallReceived(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onIncomingCallAnswered(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onIncomingCallEnded(Context ctx, String number, Date start, Date end)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onOutgoingCallStarted(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onOutgoingCallEnded(Context ctx, String number, Date start, Date end)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onMissedCall(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...