Also, if your thread is crashing, you should do an 'adb logcat' and
post the relevant stack trace relevant to the crash.

kris

On Wed, Jul 18, 2012 at 11:15 AM, Kristopher Micinski
<[email protected]> wrote:
> I'm not sure what you're going after, and you haven't said very well..
>
> In any case, "extending" your app is pretty hard.  You say that you
> want to distribute the code for your app, in a third party jar, that
> the users won't have access to?  Is this because you don't want your
> code to get taken?  If so, then there is absolutely no way this is
> possible.  If the vm is running the code, then someone can access it.
> Imagine, for example, a hacked vm that simply dumps the code it's
> executing to foil whatever plans you have.  (This is easily done, by
> the way, ...)
>
> If you don't want the user to see your code, your only option is to
> run that code somewhere else.  I.e., on a remote server...
>
> kris
>
> On Wed, Jul 18, 2012 at 3:44 AM, Harsh Vardhan <[email protected]> wrote:
>> Hey,
>>
>> I have an interface called IFunctionDictionary which has a function called
>> Execute. In my main thread run() function I register few functions and there
>> corresponding key/command. In the same function I wait for key From socket
>> and when I receive it I call the interface function Execute() which intern
>> implements behavior  in the main thread  Execute Function definition.
>>
>> I have run into a bump here:
>>
>> In my main thread run() function I register the key and the function in a
>> hash map.
>>
>> public void run()
>>
>> {
>>
>> _this = this;
>>
>>
>> try
>>
>> {
>>
>> FunctionDictionary.RegisterFunction(String.valueOf(CONSTANTS.INITIALIZE),
>> new IFunctionDictionary()
>>
>> {
>>
>> public void Execute()
>>
>> {
>>
>> _this.m_init();
>>
>> }
>>
>> });
>>
>>
>>
>>                                 this.m_localServerSocket = new
>> ServerSocket(InitializeTeacherJar.getLocalPort());
>>
>> this.m_localServerSocket.setReuseAddress(true);
>>
>> this.m_localServerSocket.setSoTimeout(100000);
>>
>> this.m_localSocket = m_localServerSocket.accept();
>>
>> while (true)
>>
>> {
>>
>> ApplicationLog.log("Flex Listener Thread Started:: Waiting for Server
>> Socket", true);
>>
>> if (this.m_localSocket != null)
>>
>> ApplicationLog.log("Flex Thread:: Flex socket created at port no:", true);
>>
>> try
>>
>> {
>>
>> BufferedReader in = new BufferedReader(new
>> InputStreamReader(this.m_localSocket.getInputStream()));
>>
>> line = null;
>>
>> while ((line = in.readLine()) != null)
>>
>> {
>>
>> this.m_command = line;
>>
>> this.m_commandParameters = this.m_command.split("#");
>>
>> FunctionDictionary.Execute(this.m_commandParameters[0]);
>>
>> }
>>
>> }
>>
>> catch (Exception e)
>>
>> {
>>
>> ApplicationLog.log("Exception Flex Listener Process Command" +
>> e.getMessage(), true);
>>
>> }
>>
>> }
>>
>> }
>>
>> catch (Exception e)
>>
>> {
>>
>> ApplicationLog.log("Exception Flex Listener Thread: cant create server
>> socket." + e.getMessage(), true);
>>
>> }
>>
>> }
>>
>>
>> The m_init gets called when I receive the key from socket.
>>
>> private void m_init()
>>
>> {
>>
>> if (_this.m_isInitialized)
>>
>> return;
>>
>> else
>>
>> {
>>
>> try
>>
>> {
>>
>> InitializeTeacherJar.instantiate(_this.m_command.split("#")[1],
>> _this.baseContext, _this.m_command.split("#")[2]);
>>
>> _this.m_parent = InitializeTeacherJar.getInstance();
>>
>> _this.m_parent.setMyFlexServer(_this.m_localServerSocket);
>>
>> _this.m_parent.setMyFlexSocket(_this.m_localSocket);
>>
>>
>> _this.m_isInitialized = true;
>>
>> }
>>
>> catch (Exception e)
>>
>> {
>>
>> //Log it
>>
>> }
>>
>> }
>>
>> }
>>
>>
>>  The mechanism it self is fine, no bugs, no crash. But when I come to the
>> Ist line of the m_init function the thread crashes abruptly.
>>
>> Is there something missing...!!
>>
>>
>> On Tue, Jul 17, 2012 at 5:02 PM, Harsh Vardhan <[email protected]>
>> wrote:
>>>
>>> Thanks Ali.
>>>
>>> I am aware of the what the design patterns are, what i needed to know is
>>> which one hits the spot in my case. Anyways I have gone ahead with something
>>> that I have figured after some head scratching and will let you all know if
>>> i succeed.
>>>
>>>
>>>
>>>
>>> On Tue, Jul 17, 2012 at 12:42 PM, Ali Chousein <[email protected]>
>>> wrote:
>>>>
>>>> You cannot extend case statements in your code dynamically, but take a
>>>> look at the strategy design pattern
>>>> (http://en.wikipedia.org/wiki/Strategy_pattern). I think that's what you
>>>> need. Design patterns are not Android specific by the way, they are just a
>>>> set of best practices in designing software.
>>>>
>>>> -------------------------------------------------
>>>> Ali Chousein
>>>> https://play.google.com/store/apps/details?id=com.apps.social_nav
>>>> https://play.google.com/store/apps/details?id=com.apps.weather_buddy
>>>> http://www.paygol.com/android/implementation
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Android Developers" group.
>>>> To post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/android-developers?hl=en
>>>
>>>
>>>
>>>
>>> --
>>> Regards
>>> Harsh Vardhan
>>>
>>
>>
>>
>> --
>> Regards
>> Harsh Vardhan
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to