在计时器内调用活动

时间:2015-02-23 18:07:57

标签: android android-activity

在我的主要活动中,我创建了一个对象internetCheck。我的班级checkInternet:

public class internetCheck {

private Timer myTimer;


public void launchTime(final Context context){
    myTimer = new Timer();
    Handler handler = new Handler(context.getMainLooper());
    myTimer.schedule(new TimerTask() {
        boolean conn = false;
        @Override
        public void run() {
            if(!check(context)){
                if(!conn) {
                            Intent i = new Intent(MainActivity.activity, MainActivity.class);
                            MainActivity.activity.startActivity(i);

                    conn=true;
                    System.out.println("déconnection" + conn);
                }
                else{
                    System.out.println("test");
                }
            }
            else{
                conn = false;
                System.out.println("déconnection" + conn);

            }
        }
    }, 0, 1000);
}



public boolean check(Context context){
    ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if(null != netInfo){
        if(netInfo.getType() == ConnectivityManager.TYPE_WIFI){
            return true;
        }
        if(netInfo.getType() == ConnectivityManager.TYPE_MOBILE){
            return true;
        }
    }
   return false;
}
}

创建后,我调用launchTime方法创建一个计时器。互联网停播时,我想回到我的MainActivity。一切正常,但我不能回到MainActivity。我不知道为什么我的startActivity(i)不起作用

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您需要通过可用的上下文启动活动:

Intent i = new Intent(ctx, MainActivity.class);
ctx.startActivity(i);