Android 我想使用broadcastreceiver启动一项活动

Android 我想使用broadcastreceiver启动一项活动,android,broadcastreceiver,Android,Broadcastreceiver,我正在android 2.2.1版上运行我的应用程序,我正在使用broadcastreceiver在屏幕解锁后立即启动活动。这不会发生……有人能帮我吗 这是我的密码 import com.example.app.MainActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toa

我正在android 2.2.1版上运行我的应用程序,我正在使用broadcastreceiver在屏幕解锁后立即启动活动。这不会发生……有人能帮我吗 这是我的密码

import com.example.app.MainActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import android.app.Activity;

public class ScreenReceiver extends BroadcastReceiver {
    Activity ac = new Activity();@Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            //Toast.makeText(context, "action received", Toast.LENGTH_LONG).show();
            Intent i = new Intent();
            i.setClass(context, MainActivity.class);
            ac.startActivity(i);
        }
    }
}


您不应使用
新建
实例化
活动。这是你应该怎么做的更正。只需使用方法参数
context

public class ScreenReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            Intent i = new Intent(context, MainActivity.class);
            context.startActivity(i);
        }
    }
}
public class ScreenReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            Intent i = new Intent(context, MainActivity.class);
            context.startActivity(i);
        }
    }
}