2012-01-16 124 views
2

当用户触摸屏幕时,我的应用程序正在完成。对于这一点,在onTouch()方法,我有当屏幕关闭时重新启动应用程序

Intent intent = new Intent(getBaseContext(), FinActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); 

其中FinActivity类是这个:

public class FinActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

     IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 
     filter.addAction(Intent.ACTION_SCREEN_OFF); 
     BroadcastReceiver mReceiver = new AlarmReceiver(); 
     registerReceiver(mReceiver, filter); 

     Intent intent = new Intent(this, AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(
       this.getApplicationContext(), 234324243, intent, 0); 

     AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
       System.currentTimeMillis() + (60 * 1000), 
       System.currentTimeMillis() + (60 * 1000), pendingIntent); 
     finish(); 
    } 

我要重新启动我的应用程序时,屏幕关闭。我有这个AlarmReceiver类:

public class AlarmReceiver extends BroadcastReceiver { 

    public static boolean wasScreenOn = true; 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
      // do whatever you need to do here 
      System.out.println("Screen OFF"); 
      wasScreenOn = false; 

       Intent i = new Intent(context, SplashScreen.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 

     } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
      // and do whatever you need to do here 
      System.out.println("Screen ONN"); 
      wasScreenOn = true; 
     } 
    } 

} 

但60秒后我在这行得到NullPointerException异常:intent.getAction().equals(Intent.ACTION_SCREEN_OFF)

哪里是我的错?我做错了什么?

在此先感谢。

+0

如果你检查一个'Intent'并忽略它,它会工作吗? – Glitch 2012-01-16 13:41:05

+0

它在没有if条件的情况下重新启动应用程序。 – Gabrielle 2012-01-16 13:50:22

回答

相关问题