The solar cells will provide some current when illuminated. This can be applied to charge the battery. It doesn't matter if something else is connected to the battery at the same time that is drawing current, you still get to use the power from the solar cells effectively. In fact, it's more efficient to power the end load directly than to first store the energy in a battery and later have the battery power the load. The point of the battery is to be able to use the power when it's needed, not just when the solar cells can provide it.
For example, let's say the solar cells can produce 1A in full sunlight, and this 1A can be applied to charging the battery. Now let's say a load is turned on that draws 400mA. The 1A from the solar cell will be split so that 400mA drives the load, leaving 600mA left to charge the battery. This is perfectly fine. If the load were more than the solar cell current, this would still work. Let's say the load takes 1.5A. 1A of that would come straight from the solar cell, and 500mA from the battery.
In other words, there is nothing wrong with the solar cell current relieving some of the load on the battery as apposed to charging the battery and then having the battery supply the load current. As I said before, that is actually more efficient since there is some loss in storing and the retreiving energy from the battery.
Knowing when the battery is full and what to do about it is a separate topic. Some battery types are quite fussy about how they are charged. For those you will need a active circuit to monitor the battery voltage and possibly temperature to decide what current to charge it with or what voltage to hold it at.
Lead-acid batteries are pretty forgiving in this area and don't have a problem with continuous charging even when full. The simplest solution is to arrange and size the solar cells such that they can only produce the maximum float voltage at the maximum current the battery can take when full. Then you can just connect the solar cells accross the battery and be done with it. This will charge the battery much more slowly than it is capable of when it is low, but is a simple setup guaranteed not to damage it.
If the solar panel size or cost is important, you need to use the energy from it more efficiently. In that case I'd use a switching power supply driven by a microcontroller that takes into account what current the solar cells can put out, the battery voltage, and possibly the battery temperature to decide what current, if any, to charge it with. This gets complicated. You have to read the battery datasheet carefully and implement the charging regime accordingly.
Best Answer
The answer is pretty straight forward. Si has a bandgap of 1.12eV which translates into photons of approx.. 1.1 um wavelength. For photons energy is \$ E = \frac{hc}{\lambda} \$ with h = planck's constant, C = speed of light and \$ {\lambda} \$= wavelength.
The sun's spectrum at the earths surface spans from 2u down to 400 nm, with the 400 nm photons having much more energy. When the photon hits the Si substrate it generates current. If a photon has sufficient energy to create free electrons in the Si then current will flow. In the case of Si you need wavelengths shorter than ~ 1.1u. If the photon carries extra energy (i.e. is shorter wavelength) that energy is not converted into additional electrons or electron energy. It simply goes into heat as you can only generate one electron (at best) per photon.
Higher efficiency PV cell's use stacks of material with differing bandgap energies to harvest the different wavelengths.
Recent advances in efficiency have been focused on getting the light into the substarte through AR coatings and minimization of blocking layers.