2016-09-26 82 views
0

以下是我在其中調用runService()方法啓動服務的代碼。
服務開始工作,但是當我點擊我的服務是沒有得到停止註銷菜單上,我已經寫了代碼在Constants.NavigationItems.NAV_SIGN_OUT一站式服務:Android後臺服務無法在註銷菜單上停止

家庭活動

public class Home extends AppCompatActivity implements ListView.OnItemClickListener { 
    // Alert Dialog Manager 
    AlertDialogManager alert = new AlertDialogManager(); 
    private static final String TAG = "DEEPAK-TEA-GPSTracking"; 
    private static double latitude; // latitude 
    private static double longitude; // longitude 

    // Session Manager Class 
    SessionManager session; 
    public static int backpress; 
    private static FragmentManager fm; 
    NavigationView navigationView; 
    TextView tv_header_name; 
    CircularImageView profileimg; 
    //ImageView profileimg; 

    PowerManager.WakeLock wakeLock; 
    private Calendar mCalendar2 = Calendar.getInstance(); 

    //Defining Variables 
    private Toolbar toolbar; 
    private DrawerLayout drawerLayout; 
    private RelativeLayout navHeaderlayout; 
    private ListView lvNavList; 
    private CharSequence mTitle; 
    private ActionBarDrawerToggle actionBarDrawerToggle; 

    Bundle userIdBundle = new Bundle(); 
    /* --------------ALARM Manager declaration----------*/ 
    private PendingIntent pendingIntent; 
    DataBaseHelper dbHelper; 
    CommonUtil commonUtil = new CommonUtil(); 
    Cursor cursor; 
    Context context; 
    private String UserId, Username, EmpName, CityId; 
    private String encodeimg = ""; 

    /*Search Data*/ 


    public static void setListViewHeightBasedOnChildren(ListView listView) { 
     ListAdapter listAdapter = listView.getAdapter(); 
     if (listAdapter == null) { 
      // pre-condition 
      return; 
     } 
     int totalHeight = 0; 
     for (int i = 0; i < listAdapter.getCount(); i++) { 
      View listItem = listAdapter.getView(i, null, listView); 
      listItem.measure(0, 0); 
      totalHeight += listItem.getMeasuredHeight(); 
     } 

     ViewGroup.LayoutParams params = listView.getLayoutParams(); 
     params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
     listView.setLayoutParams(params); 
     listView.requestLayout(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
    } 

    @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 
     // Session class instance 
     dbHelper = new DataBaseHelper(Home.this); 

     this.context = this; 
     session = new SessionManager(getApplicationContext()); 

     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 
     // Initialize Toolbar (Actionbar) 
     // mTitle = getTitle(); 
     // getSupportActionBar().hide(); 
     toolbar = (Toolbar) findViewById(R.id.toolbar1); 
     if (toolbar != null) { 
      setSupportActionBar(toolbar); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
     // Initialize Navigation Drawer 
     drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawerLayout.setBackgroundColor(Color.TRANSPARENT); 
     navHeaderlayout = (RelativeLayout) findViewById(R.id.LL_navheaderlayout); 
     navHeaderlayout.setBackgroundColor(Color.TRANSPARENT); 
     fm = getSupportFragmentManager(); 
     //Navigation View Initialization 
     navigationView = (NavigationView) findViewById(R.id.navigation_view); 
     lvNavList = (ListView) findViewById(R.id.lv_nav_list); 
     navigationView.setItemIconTintList(null); 

     List<MenuItems> listViewItems = new ArrayList<MenuItems>(); 
     listViewItems.add(new MenuItems("Home", R.drawable.ic_home)); 
     listViewItems.add(new MenuItems("Profile", R.drawable.ic_menu_profile)); 
     /*listViewItems.add(new MenuItems("Feedback", R.drawable.ic_callus)); 
     listViewItems.add(new MenuItems("Rate Us", R.drawable.ic_menu_star)); 
     listViewItems.add(new MenuItems("Share", R.drawable.ic_menu_share));*/ 
     listViewItems.add(new MenuItems("About Us", R.drawable.ic_menu_about)); 
     listViewItems.add(new MenuItems("Logout", R.drawable.ic_menu_user)); 
     lvNavList.setAdapter(new CustomAdapter(Home.this, listViewItems)); 

     lvNavList.setOnItemClickListener(this); 

     //profileimg = (CircleImageView) findViewById(R.id.profile_image); 
     profileimg = (CircularImageView) findViewById(R.id.profile_image); 
     //profileimg.setImageDrawable(R.drawable.ic_men_user2); 

     tv_header_name = (TextView) findViewById(R.id.username); 
     actionBarDrawerToggle = new ActionBarDrawerToggle(Home.this, drawerLayout, toolbar, R.string.OpenNavigationDrawer, R.string.CloseNavigationDrawer) { 

      @Override 
      public void onDrawerClosed(View drawerView) { 
       // Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank 
       super.onDrawerClosed(drawerView); 
       // getSupportActionBar().setTitle(mTitle); 
       //invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

      } 

      @Override 
      public void onDrawerOpened(View drawerView) { 
       // Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank 

       super.onDrawerOpened(drawerView); 
       //getSupportActionBar().setTitle(mTitle); 
       CommonUtil.closeKeyboard(Home.this); 
       // invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

      } 
     }; 
     drawerLayout.addDrawerListener(actionBarDrawerToggle); 
     actionBarDrawerToggle.syncState(); 


      /*--- Retrieve a PendingIntent that will perform a broadcast------------------------------- */ 
      /* Intent alarmIntent = new Intent(Home.this, AlarmReceiver.class); 
      alarmIntent.putExtra("userid", String.valueOf(UserId)); 
      Log.i("SEND TO BroadCAST Receiver","USERID :"+ String.valueOf(UserId)); 
      pendingIntent = PendingIntent.getBroadcast(Home.this,0,alarmIntent,0); 

      // Start Alarm at 9:30 AM Daily. 
      startAt930(); 

      // Stop Alarm at 7:30 PM Daily. 
      *//* stopAt730();*/ 
     try { 
      boolean isGPSENABLE = CommonUtil.isGPS(getApplicationContext()); 
      if (isGPSENABLE == true) { 

       if (CommonUtil.isInternetAvailable(getApplicationContext()) == true) { 
        // Shopcategory Fragment call by default on Home screen 
        // sendUserID(); 
        CommonUtil.showProgressDialog(Home.this, "Please wait while loading data..."); 
        fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
        backpress = 0; 
        getSessionDetails(); // Check and get session data. 
        tv_header_name.setText(tv_header_name.getText().toString() + " " + EmpName + ","); 
        Log.i("SyncProcess", "Running Called"); 
        SyncProcess syncProcess = new SyncProcess(Home.this, false); 
        syncProcess.execute(Home.this); 

        // Toast.makeText(getApplicationContext(), "UserID :" + UserId, Toast.LENGTH_LONG).show(); 
        getdata(); // Get Employee Data 
        if (encodeimg.equals("")) { 
         Log.i("IMAGE", "IS NULL"); 
         if (android.os.Build.VERSION.SDK_INT >= 21) { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2, getTheme())); 
         } else { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2)); 
         } 

        } else { 
         Log.v("BASE64Converstion", encodeimg); 
         Bitmap photo = CommonUtil.base64ToBitmap(encodeimg); 
         profileimg.setImageBitmap(photo); 

        } 

       /* PowerManager mgr = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
       wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock"); 
       wakeLock.acquire();*/ 
        Log.i("Application", "Running Online...."); 
        if (!runtimePermission()) { 

         runService(); 

         /* Log.i("Location:", " " + Coordinates); 
         Toast.makeText(getApplicationContext(),"Locations:"+Coordinates,Toast.LENGTH_SHORT).show(); 
*/ 

        } 
        CommonUtil.cancelProgressDialog(); 

       } else { 
        // Shopcategory Fragment call by default on Home screen 
        //sendUserID(); 
       // CommonUtil.showProgressDialog(Home.this, "Please wait while loading data..."); 
        fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
       // CommonUtil.cancelProgressDialog(); 
        backpress = 0; 
        getSessionDetails(); // Check and get session data. 

        tv_header_name.setText(tv_header_name.getText().toString() + " " + EmpName + ","); 
        getdata(); // Get Employee Data 
        if (encodeimg.equals("")) { 
         Log.i("IMAGE", "IS NULL"); 

         if (android.os.Build.VERSION.SDK_INT >= 21) { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2, getTheme())); 
         } else { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2)); 
         } 


        } else { 
         Log.v("BASE64Converstion", encodeimg); 
         Bitmap photo = CommonUtil.base64ToBitmap(encodeimg); 
         profileimg.setImageBitmap(photo); 

        } 
        if (CommonUtil.isInternetAvailable(Home.this)) { 
         SyncProcess syncProcess = new SyncProcess(Home.this, false); 
         syncProcess.execute(Home.this); 
        } 
        Log.i("Application", "Running Offline...."); 


        if (!runtimePermission()) { 
         runService(); 
         /*/ Log.i("Location:", " " + Coordinates); 
         Toast.makeText(getApplicationContext(),"Locations:"+Coordinates,Toast.LENGTH_SHORT).show(); 
*/ 

        } 

        //Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
       } 


      } else { // NO GPS 
       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Location Services Disabled"); 
       // builder.setCustomTitl 
       builder.setMessage("Please enable location services."); 
       builder.setIcon(R.drawable.nogps); 
       builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         Login login = new Login(); 
         login.GPSSettings(); 
        } 
       }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 

      } 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     //} 
     CommonUtil.cancelProgressDialog(); 

    } 
    public void runService() { 
    Intent i = new Intent(getApplicationContext(), TestService.class); 
     context.startService(i); 

    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     boolean isGPSENABLE = CommonUtil.isGPS(getApplicationContext()); 

     switch (position) { 
      case Constants.NavigationItems.NAV_HOME: 
       try { 
        if (isGPSENABLE == true) { 
         if (CommonUtil.isInternet(this)) { 
          Log.i("Application", "Running Online...."); 
          ///sendUserID(); 
          fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
          Log.i("HOME", "ShopCategoryFragment Called."); 
          backpress = 0; 
         } else { 
          Log.i("Application", "Running Offline...."); 
          Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
          // sendUserID(); 
          fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
          Log.i("HOME", "ShopCategoryFragment Called."); 
          backpress = 0; 
         } 


        } else { 
         // NO GPS 
         AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setTitle("Location Services Disabled"); 
         // builder.setCustomTitl 
         builder.setMessage("Please enable location services."); 
         builder.setIcon(R.drawable.nogps); 
         builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           Login login = new Login(); 
           login.GPSSettings(); 
          } 
         }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 

        } 

       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
      case Constants.NavigationItems.NAV_PROFILE: 
       try { 
        if (isGPSENABLE == true) { 
         if (CommonUtil.isInternet(this)) { 
          Log.i("Application", "Running Online...."); 
          Intent profileIntent = new Intent(Home.this, ProfileActivity.class); 
          this.startActivity(profileIntent); 

          backpress = 0; 
         } else { 
          Log.i("Application", "Running Offline...."); 
          Intent profileIntent = new Intent(Home.this, ProfileActivity.class); 
          this.startActivity(profileIntent); 
          backpress = 0; 
         } 


        } else { 
         // NO GPS 
         AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setTitle("Location Services Disabled"); 
         // builder.setCustomTitl 
         builder.setMessage("Please enable location services."); 
         builder.setIcon(R.drawable.nogps); 
         builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           Login login = new Login(); 
           login.GPSSettings(); 
          } 
         }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 

        } 

       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 


      case Constants.NavigationItems.NAV_ABOUTUS: 
       try { 
        Toast.makeText(getApplicationContext(), "About Us", Toast.LENGTH_SHORT).show(); 
        fragmentcall(Home.this, new AboutFragment(), fm); 
        backpress = 0; 
       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
      case Constants.NavigationItems.NAV_SIGN_OUT: 
       try { 
        /* Intent alarmIntent = new Intent(getApplicationContext(), AlarmReceiver.class); 
        AlarmUtil.cancelAlarm(getApplicationContext(),alarmIntent,1);*/ 
        context.stopService(new Intent(this, TestService.class)); 
        session.logoutUser(); 
        /* context.stopService(new Intent(this, TestService.class)); 
        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
        alarmManager.cancel(pendingIntent);*/ 
        Log.i("MyLocationService", "Stopped..."); 
        startActivity(new Intent(Home.this, Login.class)); 
        Toast.makeText(getApplicationContext(), "You have Successfully Logged Out...", Toast.LENGTH_SHORT).show(); 
        finish(); 
        // fragmentcall(LetUsTell.this, new AboutFragment(), fm); 
        // backpress = 6; 
       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 

      default: 
       if (isGPSENABLE == true) { 
        if (CommonUtil.isInternet(this)) { 
         Log.i("Application", "Running Online...."); 
         // Shopcategory Fragment call by default on Home screen 
         // sendUserID(); 
         fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
         backpress = 9; 

         Log.i("HOME", "ShopCategoryFragment Called."); 

        } else { 
         Log.i("Application", "Running Offline...."); 
         Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
         /// sendUserID(); 
         fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
         backpress = 9; 

         Log.i("HOME", "ShopCategoryFragment Called."); 
        } 


       } else { // No GPS 
        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Location Services Disabled"); 
        // builder.setCustomTitl 
        builder.setMessage("Please enable location services."); 
        builder.setIcon(R.drawable.nogps); 
        builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          Login login = new Login(); 
          login.GPSSettings(); 
         } 
        }); 
        AlertDialog alert = builder.create(); 
        alert.show(); 

       } 
       break; 

     } 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
    } 
} 
+0

AlarmManager alarm =(AlarmManager)getSystemService(ALARM_SERVICE); (),0,new Intent(this,TestService.class),0) );這個函數返回一個值爲0的數組。 我已經把上面的代碼放在服務的OnDestroy()中。 –

回答

0

我有變化你的代碼有點

public class Home extends AppCompatActivity implements ListView.OnItemClickListener { 
    // Alert Dialog Manager 
    AlertDialogManager alert = new AlertDialogManager(); 
    private static final String TAG = "DEEPAK-TEA-GPSTracking"; 
    private static double latitude; // latitude 
    private static double longitude; // longitude 

    // Session Manager Class 
    SessionManager session; 
    public static int backpress; 
    private static FragmentManager fm; 
    NavigationView navigationView; 
    TextView tv_header_name; 
    CircularImageView profileimg; 
    //ImageView profileimg; 

    PowerManager.WakeLock wakeLock; 
    private Calendar mCalendar2 = Calendar.getInstance(); 

    //Defining Variables 
    private Toolbar toolbar; 
    private DrawerLayout drawerLayout; 
    private RelativeLayout navHeaderlayout; 
    private ListView lvNavList; 
    private CharSequence mTitle; 
    private ActionBarDrawerToggle actionBarDrawerToggle; 

    Bundle userIdBundle = new Bundle(); 
    /* --------------ALARM Manager declaration----------*/ 
    private PendingIntent pendingIntent; 
    DataBaseHelper dbHelper; 
    CommonUtil commonUtil = new CommonUtil(); 
    Cursor cursor; 
    Context context; 
    private String UserId, Username, EmpName, CityId; 
    private String encodeimg = ""; 

    /*Search Data*/ 


    public static void setListViewHeightBasedOnChildren(ListView listView) { 
     ListAdapter listAdapter = listView.getAdapter(); 
     if (listAdapter == null) { 
      // pre-condition 
      return; 
     } 
     int totalHeight = 0; 
     for (int i = 0; i < listAdapter.getCount(); i++) { 
      View listItem = listAdapter.getView(i, null, listView); 
      listItem.measure(0, 0); 
      totalHeight += listItem.getMeasuredHeight(); 
     } 

     ViewGroup.LayoutParams params = listView.getLayoutParams(); 
     params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
     listView.setLayoutParams(params); 
     listView.requestLayout(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 

    } 

    @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 
     // Session class instance 
     dbHelper = new DataBaseHelper(Home.this); 

     this.context = this; 
     session = new SessionManager(getApplicationContext()); 

     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 
     // Initialize Toolbar (Actionbar) 
     // mTitle = getTitle(); 
//  getSupportActionBar().hide(); 
     toolbar = (Toolbar) findViewById(R.id.toolbar1); 
     if (toolbar != null) { 
      setSupportActionBar(toolbar); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     } 
     // Initialize Navigation Drawer 
     drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawerLayout.setBackgroundColor(Color.TRANSPARENT); 
     navHeaderlayout = (RelativeLayout) findViewById(R.id.LL_navheaderlayout); 
     navHeaderlayout.setBackgroundColor(Color.TRANSPARENT); 
     fm = getSupportFragmentManager(); 
     //Navigation View Initialization 
     navigationView = (NavigationView) findViewById(R.id.navigation_view); 
     lvNavList = (ListView) findViewById(R.id.lv_nav_list); 
     navigationView.setItemIconTintList(null); 

     List<MenuItems> listViewItems = new ArrayList<MenuItems>(); 
     listViewItems.add(new MenuItems("Home", R.drawable.ic_home)); 
     listViewItems.add(new MenuItems("Profile", R.drawable.ic_menu_profile)); 
     /* listViewItems.add(new MenuItems("Feedback", R.drawable.ic_callus)); 
     listViewItems.add(new MenuItems("Rate Us", R.drawable.ic_menu_star)); 
     listViewItems.add(new MenuItems("Share", R.drawable.ic_menu_share));*/ 
     listViewItems.add(new MenuItems("About Us", R.drawable.ic_menu_about)); 
     listViewItems.add(new MenuItems("Logout", R.drawable.ic_menu_user)); 
     lvNavList.setAdapter(new CustomAdapter(Home.this, listViewItems)); 

     lvNavList.setOnItemClickListener(this); 

     // profileimg = (CircleImageView) findViewById(R.id.profile_image); 
     profileimg = (CircularImageView) findViewById(R.id.profile_image); 
     // profileimg.setImageDrawable(R.drawable.ic_men_user2); 

     tv_header_name = (TextView) findViewById(R.id.username); 
     actionBarDrawerToggle = new ActionBarDrawerToggle(Home.this, drawerLayout, toolbar, R.string.OpenNavigationDrawer, R.string.CloseNavigationDrawer) { 

      @Override 
      public void onDrawerClosed(View drawerView) { 
       // Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank 
       super.onDrawerClosed(drawerView); 
       // getSupportActionBar().setTitle(mTitle); 
       //invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

      } 

      @Override 
      public void onDrawerOpened(View drawerView) { 
       // Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank 

       super.onDrawerOpened(drawerView); 
       //getSupportActionBar().setTitle(mTitle); 
       CommonUtil.closeKeyboard(Home.this); 
       // invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

      } 
     }; 
     drawerLayout.addDrawerListener(actionBarDrawerToggle); 
     actionBarDrawerToggle.syncState(); 


      /*--- Retrieve a PendingIntent that will perform a broadcast------------------------------- */ 
      /* Intent alarmIntent = new Intent(Home.this, AlarmReceiver.class); 
      alarmIntent.putExtra("userid", String.valueOf(UserId)); 
      Log.i("SEND TO BroadCAST Receiver","USERID :"+ String.valueOf(UserId)); 
      pendingIntent = PendingIntent.getBroadcast(Home.this,0,alarmIntent,0); 

      // Start Alarm at 9:30 AM Daily. 
      startAt930(); 

      // Stop Alarm at 7:30 PM Daily. 
      *//* stopAt730();*/ 
     try { 
      boolean isGPSENABLE = CommonUtil.isGPS(getApplicationContext()); 
      if (isGPSENABLE == true) { 

       if (CommonUtil.isInternetAvailable(getApplicationContext()) == true) { 
        // Shopcategory Fragment call by default on Home screen 
        // sendUserID(); 
        CommonUtil.showProgressDialog(Home.this, "Please wait while loading data..."); 
        fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
        backpress = 0; 
        getSessionDetails(); // Check and get session data. 
        tv_header_name.setText(tv_header_name.getText().toString() + " " + EmpName + ","); 
        Log.i("SyncProcess", "Running Called"); 
        SyncProcess syncProcess = new SyncProcess(Home.this, false); 
        syncProcess.execute(Home.this); 

        // Toast.makeText(getApplicationContext(), "UserID :" + UserId, Toast.LENGTH_LONG).show(); 
        getdata(); // Get Employee Data 
        if (encodeimg.equals("")) { 
         Log.i("IMAGE", "IS NULL"); 
         if (android.os.Build.VERSION.SDK_INT >= 21) { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2, getTheme())); 
         } else { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2)); 
         } 

        } else { 
         Log.v("BASE64Converstion", encodeimg); 
         Bitmap photo = CommonUtil.base64ToBitmap(encodeimg); 
         profileimg.setImageBitmap(photo); 

        } 

       /* PowerManager mgr = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
       wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock"); 
       wakeLock.acquire();*/ 
        Log.i("Application", "Running Online...."); 
        if (!runtimePermission()) { 

         runService(); 

         /* Log.i("Location:", " " + Coordinates); 
         Toast.makeText(getApplicationContext(),"Locations:"+Coordinates,Toast.LENGTH_SHORT).show(); 
*/ 

        } 
        CommonUtil.cancelProgressDialog(); 

       } else { 
        // Shopcategory Fragment call by default on Home screen 
        //sendUserID(); 
       // CommonUtil.showProgressDialog(Home.this, "Please wait while loading data..."); 
        fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
       // CommonUtil.cancelProgressDialog(); 
        backpress = 0; 
        getSessionDetails(); // Check and get session data. 

        tv_header_name.setText(tv_header_name.getText().toString() + " " + EmpName + ","); 
        getdata(); // Get Employee Data 
        if (encodeimg.equals("")) { 
         Log.i("IMAGE", "IS NULL"); 

         if (android.os.Build.VERSION.SDK_INT >= 21) { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2, getTheme())); 
         } else { 

          profileimg.setImageDrawable(getResources().getDrawable(R.drawable.ic_men_user2)); 
         } 


        } else { 
         Log.v("BASE64Converstion", encodeimg); 
         Bitmap photo = CommonUtil.base64ToBitmap(encodeimg); 
         profileimg.setImageBitmap(photo); 

        } 
        if (CommonUtil.isInternetAvailable(Home.this)) { 
         SyncProcess syncProcess = new SyncProcess(Home.this, false); 
         syncProcess.execute(Home.this); 
        } 
        Log.i("Application", "Running Offline...."); 


        if (!runtimePermission()) { 
         runService(); 
         /*/ Log.i("Location:", " " + Coordinates); 
         Toast.makeText(getApplicationContext(),"Locations:"+Coordinates,Toast.LENGTH_SHORT).show(); 
*/ 

        } 

        //Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
       } 


      } else { // NO GPS 
       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Location Services Disabled"); 
       // builder.setCustomTitl 
       builder.setMessage("Please enable location services."); 
       builder.setIcon(R.drawable.nogps); 
       builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         Login login = new Login(); 
         login.GPSSettings(); 
        } 
       }); 
       AlertDialog alert = builder.create(); 
       alert.show(); 

      } 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     //} 
     CommonUtil.cancelProgressDialog(); 

    } 
    public void runService() { 
    Intent i = new Intent(getApplicationContext(), TestService.class); 
     startService(i); 

    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     boolean isGPSENABLE = CommonUtil.isGPS(getApplicationContext()); 

     switch (position) { 
      case Constants.NavigationItems.NAV_HOME: 
       try { 
        if (isGPSENABLE == true) { 
         if (CommonUtil.isInternet(this)) { 
          Log.i("Application", "Running Online...."); 
          ///sendUserID(); 
          fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
          Log.i("HOME", "ShopCategoryFragment Called."); 
          backpress = 0; 
         } else { 
          Log.i("Application", "Running Offline...."); 
          Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
          // sendUserID(); 
          fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
          Log.i("HOME", "ShopCategoryFragment Called."); 
          backpress = 0; 
         } 


        } else { 
         // NO GPS 
         AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setTitle("Location Services Disabled"); 
         // builder.setCustomTitl 
         builder.setMessage("Please enable location services."); 
         builder.setIcon(R.drawable.nogps); 
         builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           Login login = new Login(); 
           login.GPSSettings(); 
          } 
         }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 

        } 

       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
      case Constants.NavigationItems.NAV_PROFILE: 
       try { 
        if (isGPSENABLE == true) { 
         if (CommonUtil.isInternet(this)) { 
          Log.i("Application", "Running Online...."); 
          Intent profileIntent = new Intent(Home.this, ProfileActivity.class); 
          this.startActivity(profileIntent); 

          backpress = 0; 
         } else { 
          Log.i("Application", "Running Offline...."); 
          Intent profileIntent = new Intent(Home.this, ProfileActivity.class); 
          this.startActivity(profileIntent); 
          backpress = 0; 
         } 


        } else { 
         // NO GPS 
         AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setTitle("Location Services Disabled"); 
         // builder.setCustomTitl 
         builder.setMessage("Please enable location services."); 
         builder.setIcon(R.drawable.nogps); 
         builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           Login login = new Login(); 
           login.GPSSettings(); 
          } 
         }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 

        } 

       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 


      case Constants.NavigationItems.NAV_ABOUTUS: 
       try { 
        Toast.makeText(getApplicationContext(), "About Us", Toast.LENGTH_SHORT).show(); 
        fragmentcall(Home.this, new AboutFragment(), fm); 
        backpress = 0; 
       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
      case Constants.NavigationItems.NAV_SIGN_OUT: 
       try { 
        /* Intent alarmIntent = new Intent(getApplicationContext(), AlarmReceiver.class); 
        AlarmUtil.cancelAlarm(getApplicationContext(),alarmIntent,1);*/ 
        stopService(new Intent(this, TestService.class)); 
        session.logoutUser(); 
        /* context.stopService(new Intent(this, TestService.class)); 
        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
        alarmManager.cancel(pendingIntent);*/ 
        Log.i("MyLocationService", "Stopped..."); 
        startActivity(new Intent(Home.this, Login.class)); 
        Toast.makeText(getApplicationContext(), "You have Successfully Logged Out...", Toast.LENGTH_SHORT).show(); 
        finish(); 
        // fragmentcall(LetUsTell.this, new AboutFragment(), fm); 
        // backpress = 6; 
       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 

      default: 
       if (isGPSENABLE == true) { 
        if (CommonUtil.isInternet(this)) { 
         Log.i("Application", "Running Online...."); 
         // Shopcategory Fragment call by default on Home screen 
         // sendUserID(); 
         fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
         backpress = 9; 

         Log.i("HOME", "ShopCategoryFragment Called."); 

        } else { 
         Log.i("Application", "Running Offline...."); 
         Toast.makeText(this, R.string.app_offline, Toast.LENGTH_SHORT).show(); 
         /// sendUserID(); 
         fragmentcall(Home.this, new ShopCategoryFragment(), fm); 
         backpress = 9; 

         Log.i("HOME", "ShopCategoryFragment Called."); 
        } 


       } else { // No GPS 
        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Location Services Disabled"); 
        // builder.setCustomTitl 
        builder.setMessage("Please enable location services."); 
        builder.setIcon(R.drawable.nogps); 
        builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          Login login = new Login(); 
          login.GPSSettings(); 
         } 
        }); 
        AlertDialog alert = builder.create(); 
        alert.show(); 

       } 
       break; 

     } 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
    } 
} 

我希望它能幫助你。

+0

感謝您的回覆。但實際上我沒有得到你在代碼中改變的東西。 –

+0

用活動本身調用服務無需調用上下文來啓動和停止服務 –

+0

你的意思是說我必須在Intent(getActivity(),TestService.class)中使用getActivity(); –