equal
deleted
inserted
replaced
85 RWsSession wsSession; |
85 RWsSession wsSession; |
86 User::LeaveIfError( wsSession.Connect() ); |
86 User::LeaveIfError( wsSession.Connect() ); |
87 TUint64 threadId(0); |
87 TUint64 threadId(0); |
88 TBool taskExists(EFalse); |
88 TBool taskExists(EFalse); |
89 TInt status = KErrNone; |
89 TInt status = KErrNone; |
|
90 iAppUid = aAppUid; |
90 if(aRootAppIndication) |
91 if(aRootAppIndication) |
91 { |
92 { |
92 CAknTaskList* taskList = CAknTaskList::NewL( wsSession ); |
93 CAknTaskList* taskList = CAknTaskList::NewL( wsSession ); |
93 TApaTask task = taskList->FindRootApp( aAppUid ); |
94 TApaTask task = taskList->FindRootApp( aAppUid ); |
94 delete taskList; |
95 delete taskList; |
129 void CApplicationMonitor::RunL() |
130 void CApplicationMonitor::RunL() |
130 { |
131 { |
131 MPX_DEBUG1("CApplicationMonitor::RunL <---"); |
132 MPX_DEBUG1("CApplicationMonitor::RunL <---"); |
132 switch (iStatus.Int()) |
133 switch (iStatus.Int()) |
133 { |
134 { |
134 case EExitKill: |
135 case EExitPending: |
135 case EExitTerminate: |
136 MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending"); |
136 case EExitPanic: |
137 iThread.Close(); |
137 MPX_DEBUG1("CApplicationMonitor::RunL kill\terminate\panic"); |
138 TRAPD(err, StartL( iAppUid ) ); |
138 iObserver.HandleApplicationClosedL((TExitType) iStatus.Int()); |
139 if (KErrNone != err) |
|
140 { |
|
141 MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending but thread is really gone"); |
|
142 iObserver.HandleApplicationClosedL((TExitType) iStatus.Int()); |
|
143 } |
139 break; |
144 break; |
140 case KErrCancel: |
145 case KErrCancel: |
141 case KErrNoMemory: |
146 MPX_DEBUG1("CApplicationMonitor::RunL cancel"); |
142 MPX_DEBUG1("CApplicationMonitor::RunL cancel\memory"); |
|
143 break; |
147 break; |
144 case EExitPending: |
|
145 default: |
148 default: |
146 MPX_DEBUG1("CApplicationMonitor::RunL exitpendin\default"); |
149 MPX_DEBUG2("CApplicationMonitor::RunL reason = %d", iStatus.Int()); |
147 // Listen again |
150 iObserver.HandleApplicationClosedL((TExitType) iStatus.Int()); |
148 iThread.Logon(iStatus); |
|
149 SetActive(); |
|
150 break; |
151 break; |
151 } |
152 } |
152 MPX_DEBUG1("CApplicationMonitor::RunL --->"); |
153 MPX_DEBUG1("CApplicationMonitor::RunL --->"); |
153 } |
154 } |
154 |
155 |
169 // ---------------------------------------------------------------------------- |
170 // ---------------------------------------------------------------------------- |
170 // |
171 // |
171 TInt CApplicationMonitor::RunError(TInt /*aError*/) |
172 TInt CApplicationMonitor::RunError(TInt /*aError*/) |
172 { |
173 { |
173 MPX_DEBUG1("CApplicationMonitor::RunError <---"); |
174 MPX_DEBUG1("CApplicationMonitor::RunError <---"); |
174 // Listen again |
|
175 iThread.Logon(iStatus); |
|
176 SetActive(); |
|
177 MPX_DEBUG1("CApplicationMonitor::RunError --->"); |
175 MPX_DEBUG1("CApplicationMonitor::RunError --->"); |
178 return KErrNone; |
176 return KErrNone; |
179 } |
177 } |